tkinterを使って円が動くプログラムを作ろう
今回はtkinterを使って、円が画面の左端から右端に行くだけの簡単なプログラムを作ります。
キャンバスウィジェットを after()メソッドを使って表示を遅らせて、円の位置を少しずつずらしながら表示します。
after()メソッドの書式
after()メソッドは、ウィジェットの動作を指定したミリ秒分待機させます。
after()メソッドの書式は、以下の通りです。
ウィジェット.after(遅延ミリ秒, コールバック関数, 引数)
メモ
コールバック関数を指定しなければ、Pythonのタイムモジュールの sleep()関数のように指定したミリ秒待機します。
Pythonスクリプト
tkinterを使って円を移動させるプログラムは、以下のようになります。
canvas.delete()メソッドで、キャンバスの内容をクリアしてから円の座標を変えて表示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
### インポート import tkinter ### 定数 SIZE = 20 # 円サイズ ### 変数 x_pos = 0 # X座標 y_pos = 190 # Y座標 ### キャンバス作成 canvas = tkinter.Canvas(width=640, height=400) ### キャンバス表示 canvas.pack() ### 処理実行関数 def run(): ### グローバル変数宣言 global x_pos global y_pos ### キャンバスクリア canvas.delete("all") ### 円表示 canvas.create_oval(x_pos, y_pos, x_pos+SIZE, y_pos+SIZE, outline="red", fill="red") ### 座標移動 x_pos += 3 ### 待機 canvas.after(50, run) ### 処理実行 run() ### イベントループ canvas.mainloop() |
プログラムを実行すると、円が左から右に移動します。