Эта функция отображает изображение в кадре и поворачивает его постепенно от указанных начальной и конечной точек. Это работает в том смысле, что изображение отображается под правильным конечным углом, и пока l oop увеличивается. Вывод на печать:
angle is 8 card angle is 32
2
angle is 12 card angle is 32
3
angle is 16 card angle is 32
4
angle is 20 card angle is 32
5
angle is 24 card angle is 32
6
angle is 28 card angle is 32
7
angle is 32 card angle is 32
8
Чего не делает эта функция, так это делать паузу при каждом увеличении для отображения промежуточных повернутых изображений, как я и ожидал, «после». Скрипт, который вызывает эту функцию, успешно использует after после того же виджета, поэтому я предполагаю, что while не выполняет то, что я думаю. Я пробовал несколько способов зацикливания с одинаковым результатом или сложными трассировками команд tcl. Что мне не хватает, пожалуйста?
def turn( self):
while True:
if self.angle > self.card_angle:
break
print(f'angle is {self.angle } card angle is {self.card_angle}')
self.angle+=4
self.label.destroy()
#create PIL ImageTk which has a rotate method.
self.tkimage=ImageTk.PhotoImage(self.card_pic.rotate(self.angle,expand=1))
#creat label with tkImage and show label
self.label=tk.Label(self)
self.label['image']=self.tkimage
self.label.pack()
self.count+=1
print(self.count)
self.label.after(1000,self.turn)