ホラ・コーダーズ! 今回は、Tkinterを使って様々な図形を描画してみましょう。
前回のブログでは、Tkinterを使って線を描くというトピックは、この最先端のコンセプトへの良いきっかけになりました。
読者はこのURLで見ることができます。
では、今回は新しいものに前進して、さらにいくつかの図形を描いてみましょう。
こちらもご覧ください。
基本設定
プロジェクトファイルのために、新しいディレクトリを作成することは、常に良いプログラミングプラクティスです。
これは、将来の目的のために、より速く物事を整理するのに役立ちます。
-
- フォルダを作成します。1. Tkinter Shapesというフォルダを作成します。
-
- Pythonファイルを作成し、スクリプト/コードを格納します。これでコーディングの準備は完了です。
-
- 必要であれば、それぞれのコードに別々のPythonスクリプトを作成することもできます。
基本を飛ばしますか?Tkinterで楕円を作るところへジャンプしてください。
Tkinterのキャンバスを作成する
TkinterのCanvasは、描画や相対的な処理を行うための基本的なウィンドウです。
これは白い画面で、ホワイトボードのようにカラフルなチョークを使ってスケッチを表示することができます。
以下は、Canvasのセットアップのためのコードです。
コード
from tkinter import Tk
from tkinter import Canvas
window = Tk()
window.geometry( "400x400" )
window.configure(background = "grey" )
window.title( "Canvas - Draw Shapes" )
window.resizable( False , False )
# setting up the canvas canvas = Canvas(width = 350 , height = 350 , bg = "white" )
canvas.pack(pady = 20 )
window.mainloop() |
結果は以下の通りです。
from tkinter import Tk
from tkinter import Canvas
window = Tk()
window.geometry( "400x400" )
window.configure(background = "grey" )
window.title( "Canvas - Draw Shapes" )
window.resizable( False , False )
# setting up the canvas canvas = Canvas(width = 350 , height = 350 , bg = "white" )
canvas.pack(pady = 20 )
# create a text that renders the name of our shape canvas.create_text( 175 , 30 , text = "Arc" , font = ( "Arial" , 30 ))
#create an arc canvas.create_arc( 0 , 340 , 200 , 100 , width = 5 )
window.mainloop() |
それでは、Tlkinterウィンドウの中央にCanvasを配置してみましょう。
- 解像度は350×350です。
- 背景は白に設定されています。
この記事もチェック:PythonのTkinter入門|画面を表示させる所までを解説する
図形を描くための関数
Canvas上に図形を描画するための組み込み関数があります。
これらはCanvasクラス自体から派生したものです。
その一覧は以下の通りです。
create_line() – 直線を描画します。
create_arc() – 画面上に円弧を描画します。
create_oval() – 楕円、円、だ円を描く。
create_polygon() – 六角形、五角形などをトレースします。
ここでは、最も重要な2つの関数、create_arc()とcreate_oval()メソッドを見てみましょう。
さっそく始めてみましょう。
Tkinterで円弧を作成する
コード
from tkinter import Tk
from tkinter import Canvas
window = Tk()
window.geometry( "400x400" )
window.configure(background = "grey" )
window.title( "Canvas - Draw Shapes" )
window.resizable( False , False )
# setting up the canvas canvas = Canvas(width = 350 , height = 350 , bg = "white" )
canvas.pack(pady = 20 )
canvas.create_text( 175 , 30 , text = "Arc" , font = ( "Arial" , 30 ))
canvas.create_arc( 0 , 340 , 200 , 100 , width = 5 , fill = "orange" )
window.mainloop() |
結果は以下の通りです。
from tkinter import Tk
from tkinter import Canvas
window = Tk()
window.geometry( "400x400" )
window.configure(background = "grey" )
window.title( "Canvas - Draw Shapes" )
window.resizable( False , False )
# setting up the canvas canvas = Canvas(width = 350 , height = 350 , bg = "white" )
canvas.pack(pady = 20 )
canvas.create_text( 175 , 20 , text = "Circle" , font = ( "Arial" , 30 ))
canvas.create_oval( 175 , 100 , 100 , 175 , width = 3 )
window.mainloop() |
説明
- 最初の7行は、ウィンドウとキャンバスの基本的なセットアップです。
-
- 8行目から円弧を描画します。create_arc()関数を呼び出す。軸平面上に配置するために、座標(x1, y1, x2, y2)を指定します。順番に指定するのを忘れないように。 最後のパラメータはwidthです。これは図形の厚みを指定します。
-
- fillパラメータで円弧に色をつけることもできる。create_arc()の中で呼び出して、String形式でカラー名を指定します。「color_name “という文字列で指定します。
-
- 詳細を説明するために、create_text()関数を使用してテキストをレンダリングします。テキストはCanvasの上部に配置し、フォントをArial、サイズを30に設定します。
カラフルな円弧を描画するコード
from tkinter import Tk
from tkinter import Canvas
window = Tk()
window.geometry( "400x400" )
window.configure(background = "grey" )
window.title( "Canvas - Draw Shapes" )
window.resizable( False , False )
# setting up the canvas canvas = Canvas(width = 350 , height = 350 , bg = "white" )
canvas.pack(pady = 20 )
canvas.create_text( 175 , 20 , text = "Circle" , font = ( "Arial" , 30 ))
canvas.create_oval( 175 , 100 , 100 , 175 , width = 3 )
window.mainloop() |
結果は以下の通りです。
というわけで、コードは先ほどのものと同じだ。
create_arc()関数の中にfillパラメータを追加するだけで、美しい結果が得られます。
Tkinterで円や楕円を作る
Tkinterを使って楕円を作成する準備はできましたか?さっそくやってみましょう。
ovalのコード。
結果は、以下の通りになります。
説明します。
- 最初の7行は、Tkinterとcanvasの基本的なセットアップです。
-
- Canvasオブジェクトの中で、create_oval()関数を呼び出しています。これは、楕円や円をトレースする役割を担っています。
-
- 座標を指定すると、結果が得られます。
create_oval()メソッドは、円を作成することもできます。
x1とy2が同じで、x2とy1が同じであることを確認するだけでよい。
円を作るためのコード
結果は以下の通りです。
まとめ
このように、TkinterのCanvasと組み込みのShape関数を使って、様々な図形を描くことができます。
このライブラリはGUIプログラミングや開発の初心者にとても優しいものです。
読者のみなさんには、コードをいじくりまわして、これらのシェイプをカスタマイズしてみることをお勧めします。
この記事が楽しいものになることを願っています。