Показать изображение с Tkinter и цикл во времени - PullRequest
2 голосов
/ 03 октября 2011

В настоящее время я использую PIL и Tkinter для отображения изображений. Я транслирую изображения из сети и хочу автоматически обновлять окно по мере поступления (так же, как слайд-шоу с фотографиями). Мой код для отображения изображений работает; однако для обновления фотографии мне нужно нажать кнопку [x] в окне дисплея. Я хочу, чтобы окно автоматически обновлялось по мере поступления новой фотографии или, по крайней мере, запускало цикл примерно каждые 5 секунд (чтобы окно либо само закрывалось, и появлялась новая фотография, либо фотография просто изменялась в окне). Мой код:

##I have a database of photos i want to display one by one...

im=image.open(currentphoto)
root=Tk()
canvas=...
photo=imageTk.PhotoImage(im)
item=canvas.create_image(10,10,anchor=NW,image=photo)

root.mainloop()

##want to display next photo either as it comes in or every 5 seconds (whichever is easier -- first method preferred)

Этот код работает;

1 Ответ

1 голос
/ 03 октября 2011

Вызовите метод after, чтобы запланировать выполнение команды в будущем. Для этой команды совершенно законно также вызывать after, чтобы запланировать повторный запуск в будущем.

Пример, показывающий, как Label обновляет свой текст каждую секунду, см. этот ответ на другой вопрос здесь, на SO.

...