TkinterでCanvasを作る

Python

Tkinterの使い方 第02回

TkinterでCanvasを作ります。

Tkinterを準備

まずTkinterのウィンドウを表示します。

import tkinter as tk
root = tk.Tk()
root.mainloop()

前回記事ではtk.Tk()に直接.mainloop()を繋げていましたが、Tkinterを扱う際にはtk.Tk()で生成した値をしばしば使いますので、rootという変数に格納しておきます。

この値はTkinterを扱う際にmasterという名前付き引数に指定することが多いので、記事によっては変数名がmasterになっているかもしれません。本記事ではrootとします。

白い画面を表示する

以下のコードでCanvasを作成します。

import tkinter as tk #Tkinterをtkとしてimport

class app(tk.Tk): #tk.Tkの継承クラスapp()を定義
    def __init__(self): #クラスの初期化
        super().__init__() #親クラス(tk.Tk)の初期化
        self.mainCanvas = tk.Canvas(self,background="#FFF",width="500",height="500") #tk.Canvasの作成
        self.mainCanvas.pack() #mainCanvasを設置

root = app() #appオブジェクトを作成
root.mainloop() #作成したappオブジェクトを実行

このようにtk.Tkを継承したappクラスを中心に様々なアプリを作れると思います。

さて、このプログラムを実行すると、白背景の500px × 500pxの正方形が表示されると思います。これはTkinterでキャンバスを作るパーツ、その名もtk.Canvasです。

コードの簡単な解説としては、tk.Canvasは第一引数にmaster(基準となるTkクラス)を指定する必要があります。ここではselfがそれに該当します。

また、その後第二引数以降に名前付きでbackgroundwidthheightを指定しています。(これらはdict型で指定することも可能です。)

tk.Canvasの作成が終わったらそれをGUI上に表示する必要があるので、packメソッドで配置しています。

各種Tkinterのパーツを配置するメソッドはいくつかあるのですが本記事では割愛して、また別の記事で紹介しようと思います。

はい。キャンバスが完成しました。