Я ищу, чтобы уснуть в цикле while, в холсте tkinter. В Python2 Цель состоит в том, чтобы иметь случайную движущуюся точку, обновленную каждые X секунд (тогда я смогу сделать более крупный скрипт, чтобы точно то, что я хочу) без ввода внешнего пользователя.Сон в tkinter (python2)
В настоящем время, я сделал это:
import Tkinter, time
x1, y1, x2, y2 = 10, 10, 10, 10
def affichage():
global x1, y1, x2, y2
can1.create_rectangle(x1, y1, x2, y2, fill="blue", outline="blue")
def affichage2():
global x1, y1, x2, y2
can1.delete("all")
can1.create_rectangle(x1, y1, x2, y2, fill="blue", outline="blue")
fen1 = Tkinter.Tk()
can1 = Tkinter.Canvas(fen1, height=200, width=200)
affichage()
can1.pack()
temps = 3000
while True:
can1.after(temps, affichage2)
x1 += 10
y1 += 10
x2 += 10
y2 += 10
temps += 1000
fen1.mainloop()
fen1.destroy()
(извините за французские имена переменных: °) Итак, я попытался с помощью функции .Посль, но я не могу увеличить его, как я хочу. Я думаю, что это возможно при многопоточности, но должно быть более простое решение.
У вас есть идея?
'time.sleep (т)' 'где измеренное T' находится в секундах –
' fen1.mainloop() 'является частью при запуске приложения, если это не выполняется, потому что это ниже' в то время как True' без 'break', тогда окно никогда не появится вообще. –
другие указали на проблему с 'sleep'. Также существует проблема с удалением и воссозданием прямоугольника. Холст имеет возможность перемещать существующий объект; что будет более эффективным, чем уничтожение и воссоздание объекта. –