Python独学ならTech-Joho TOP > いろいろやってみた >tkinterを使ってPythonで絵を描く
tkinterとは
tkinterは、pygletやKivy等と同じように、pythonでGUIのアプリを作るためのモジュールです。
厳密に言えば、Tclという別言語のためのTkというGUIツールキットをPythonから操るためのインタフェースです。
Tk及びTclについて詳しく知りたい人は、公式サイトを見ましょう。英語ですが。
参考 tcl公式
Tcl Developer Site
別言語といってもpythonと組み合わせてよく使われている印象があります。
このtkinterを使って、いつものように矩形を描画させてみましょう。
1.Pythonの実行環境の準備
tkinterを利用するには、最新のPythonを自分のパソコンにインストールする必要があります。
Pythonインストールの方法については、下の記事をご覧ください。
pygameを使ってPythonで絵を描く
2.tkinterインストール
tkinterは、インストールが不要です。
なぜなら、Pythonのインストール時に一緒にインストールされるからです。
3.まずは絵を書いてみる
pygameの例、kivyの例と同じように矩形、長方形を描いてみましょう。
描く図形は、上記のKiviの例と同じです。
横300px、縦200pxの長方形のウインドウの中に、
左上から右に10px、下に10pxの位置に、幅20px、高さ50pxの縦長の長方形を描きます。
下の内容のファイルtkintertest.pyを作成して下さい。
tkintertest.py
iimport tkinter root = tkinter.Tk() root.title("This is a tkinter sample") root.geometry("300x200") canvas = tkinter.Canvas(root, width=300, height=200) canvas.create_rectangle(10, 10, 30, 60, fill='yellow') canvas.place(x=0, y=0) root.mainloop()
次に、ファイルを保存したディレクトリで下のコマンドを実行してください。
>>> python tkintertest.py
ウインドウがでてきて、黄色い長方形が左上に表示されましたか?
Kivyやpygameの例とことなり、ディフォルトでウインドウの背景色が白らしいですね。
また、長方形にも黒い枠線がついています。
細かいことはきにせず、このまま進めますが、気になる人は下のサイトなどを参考にしてみてください。
このウインドウを消すには、普通にx(バツ)ボタンを押してください。
4.解説
上のコードを、まとまりごとに説明します。
import tkinter root = tkinter.Tk() 略 root.mainloop()
一番上の”import tkinter”は、tkinterモジュールをインポートしています。
次の”root = tkinter.Tk()”、そして最後の”root.mainloop()”この2つで、ウインドウを表示する処理をしています。
root.title("This is a tkinter sample") root.geometry("300x200")
なんとなくわかると思いますが、”root.title(“This is a tkinter sample”)”で、ウインドウのタイトルを指定しています。
“root.geometry(“300×200”)”は、ウインドウの幅と高さの指定です。
canvas = tkinter.Canvas(root, width=300, height=200) canvas.create_rectangle(10, 10, 30, 60, fill='yellow') canvas.place(x=0, y=0)
ここでは黄色の長方形を描いています。
まず、”canvas = tkinter.Canvas(root, width=300, height=200)”で、ウインドウと同じ大きさの「キャンバス」を作っています。
自由に絵をかけるエリアみたいなイメージでしょうか。
そのキャンバスの中に、”canvas.create_rectangle(10, 10, 30, 60, fill=’yellow’)”で、長方形を描いています。
最初の4つの数字は、長方形の左上のx座標、y座標、右下のx座標、y座標です。
ちなみに、tkinterの世界では左上が原点のようです。
一番最後の fill=’yellow’は黄色で塗りつぶすことを指定しています。
“canvas.place(x=0, y=0)”で、キャンバスをウインドウのの原点に置きます。
これで、キャンバス内に描かれた長方形もウインドウに表示されることになります。