イベント コールバックには次のようなコードがあります。
...
self.position.side = -self.position.side
self.update_with_board() # displays self.position graphically
ai_move = self.brain.get_move(self.position)
...
update() はすぐに呼び出されますが、行まで GUI には影響しませんai_move
。
しかし、私がするとき:
...
self.position.side = -self.position.side
self.update_with_board() # displays self.position graphically
raw_input()
ai_move = self.brain.get_move(self.position)
...
入力を求めるとすぐにグラフィカルに更新されます。これをどうすればいいのかわからない: ファンキーな遅延評価か、私が知らない tkinter スケジューリングか? 遅延ではなく、指定された順序で GUI を更新するにはどうすればよいですか?
編集: 申し訳ありませんが、組み込みupdate()
メソッドを使用していませんでしたが、描画するように定義したメソッドを使用していました。名前を変更しましたupdate_with_board()
が、同じ動作が見られます。
def update_with_board(self):
for i in range(8):
for j in range(8):
color = "gray" if (i+j) % 2 else "white"
self.canvas.create_rectangle(self.square * i, self.square * j, self.square * (i+1), self.square * (j+1), fill=color)
if self.position.board[8 * j + i] in self.ims.keys():
self.canvas.create_image(self.square * i + self.square/2,
self.square * j + self.square/2, image = self.ims[self.position.board[8 * j + i]])