0

tkinter ウィンドウ全体でキャンバス サークルを移動しようとしています。canvas.move を使用していますが、オブジェクトが新しい場所に再表示されるだけです。実際に走っているところを見たいです。これを行う方法はありますか?私は次のものを持っています:

def move_to(self, user_id, old_location, new_location):
    self.user_list[user_id].set_location(new_location)
    user_canvas_id = self.user_id_dict[user_id]
    row_delta = new_location[ROW_INDEX] - old_location[ROW_INDEX]
    col_delta = new_location[COL_INDEX] - old_location[COL_INDEX]
    self.canvas.move(user_canvas_id, row_delta, col_delta)


def roaming_handler(self, user_id):
    row = randrange(1, self.number_of_events * 125)
    col = randrange(1, self.number_of_events * 125)
    user_location = self.user_list[user_id].get_location()
    self.move_to(user_id, user_location, (row, col))

その時のシミュレーションでは他にもさまざまなことが行われており、それらの多くはある時点でこれを呼び出します。

4

2 に答える 2

0

あなたが言ったように、「それが移動するのを見る」ことができるように、単にプロセスに遅延を追加する必要があると思います。これはあなたがそれを行う方法です:

canvas.update()
canvas.after(#number of miliseconds)

コード例:

import tkinter

canvas = tkinter.Canvas(width=600, height=200)
canvas.pack()

canvas.create_oval(250, 50, 350, 100)

for x in range(100):
    canvas.move(1, -5, 0)
    canvas.update()
    canvas.after(100)
于 2017-01-11T21:13:24.493 に答える