2016-08-18 4 views
0

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

Мой третий образ имеет 2 разные взгляды на него, так что я писал:

 #Third image 
     elif (self.index==3): 
      start = clock() 
      self.label.configure(image=self.photo2[1])#first image 
      if (start>2): 
       self.label.configure(image=self.photo2[2])#second image 

На данный момент, когда пользователь нажимает на третий элемент будет первым отображать первое изображение, а затем, если reclicked после двух секунд будет отображаться второе изображение, так что работает.

Тем не менее, я хочу, чтобы мое третье изображение автоматически менялось через две секунды без повторного сканирования. Есть ли способ обновить изображение в реальном времени в tkinter или какие-либо идеи о том, какой подход я мог бы предпринять?

ответ

2

Это общий шаблон. Вы должны использовать Tk.after для запуска функции, которая изменяет изображение, а затем планирует следующее изменение.

def change_image(label, imagelist, nextindex): 
    label.configure(image=imagelist[nextindex]) 
    root.after(2000, lambda: change_image(label, imagelist, (nextindex+1) % len(imagelist))) 

Затем позвоните ему один раз и позвольте ему сделать это навсегда.

root = Tk() 
setup_your_stuff() 
change_image(root.label, root.photo2, 0) 
+0

Были вещи, которые мне нужно было изменить, но tk.after именно то, что я искал, спасибо! – RayBae

Смежные вопросы