機械です。
私が、処理系の画面処理のしやすさを調べるためにいつも使ってる
ものを、今回Python/Tkで試してみました。
描画オブジェクトが使えないものだと、画面について、塗りつぶしと
描画を交互に行う結構面倒くさい処理を必要としますが、オブジェクト
単位で管理している処理系だと、実に簡単です。
プログラムの動作としては、テンキーの8246のキーによって、
上下左右にマスが動くだけです。
--^ rect.py
from Tkinter import *
root = Tk()
skip=24 # マスの大きさ
wd = 480 # 画面横
ht = 360 # 画面縦
canvas = Canvas(root,width=wd,height=ht,bg="black")
bm=canvas.create_rectangle(0,0,23,23,
fill="white",
)
def kbd(event):
c=canvas.coords(bm) # オブジェクトの座標を取得
if event.char=="6" and c[0] < (wd-skip):
c[0] = c[0] + skip
elif event.char=="2" and c[1] < (ht-skip):
c[1] = c[1] + skip
elif event.char=="4" and c[0] > 0:
c[0] = c[0] - skip
elif event.char=="8" and c[1] > 0:
c[1] = c[1] - skip
# 座標変更
canvas.coords(bm,c[0],c[1],c[0]+23,c[1]+23)
canvas.bind("<Key>",kbd)
canvas.pack()
canvas.focus_set()
root.mainloop()
--$
まぁ贔屓目無しに見ても、簡単に書けるほうだと思います。
GUIでない画面制御についての資料は、非常に少ないPythonですが、
こうした手慰み程度のものでも少しづつ蓄積することによって、
可能性を探る手がかりになれば、と思います。
機械伯爵