作者: 機械伯爵
日時: 2002/7/2(01:09)
 機械です。

 私が、処理系の画面処理のしやすさを調べるためにいつも使ってる
ものを、今回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ですが、
こうした手慰み程度のものでも少しづつ蓄積することによって、
可能性を探る手がかりになれば、と思います。

   機械伯爵