Python tkinter показывает изображения и циклически просматривает список веб-изображений [дубликат]

4
задан user1528634 16 July 2012 в 12:27
поделиться

2 ответа

Основной шаблон для создания анимации или периодических задач с Tkinter - это написать функцию, которая рисует один кадр или выполняет одну задачу. Затем используйте что-то подобное, чтобы вызвать его через регулярные промежутки времени:

def animate(self):
    self.draw_one_frame()
    self.after(100, self.animate)

Как только вы вызываете эту функцию один раз, она будет продолжать рисовать кадры со скоростью десять в секунду - один раз каждые 100 миллисекунд. Вы можете изменить код, чтобы проверить флажок, если вы хотите остановить анимацию после ее запуска. Например:

def animate(self):
    if not self.should_stop:
        self.draw_one_frame()
        self.after(100, self.animate)

У вас была бы кнопка, которая при нажатии кнопки self.should_stop на False

12
ответ дан Bryan Oakley 26 August 2018 в 01:56
поделиться

Я просто хотел добавить ответ Брайана. Мне не хватает комментариев для комментариев.

Еще одна идея - использовать self.after_cancel() для остановки анимации.

Итак ...

def animate(self):
    self.draw_one_frame()
    self.stop_id = self.after(100, self.animate)

def cancel(self):
    self.after_cancel(self.stop_id)
1
ответ дан Ioannis Georgantas 26 August 2018 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: