2016-08-18 7 views
0

Ich habe derzeit ein Listenfeld mit den Pfaden von Dutzenden von Bildern, wenn ein Element in der Listbox ausgewählt ist, wird das Bild in der Mitte der GUI angezeigt.Tkinter Bild nach einer bestimmten Zeit wechseln

Mein drittes Bild hat zwei verschiedene Looks, um es so schrieb ich:

 #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 

Vorerst, wenn der Benutzer das dritte Element klickt wird es zunächst um das erste Bild anzuzeigen, dann reclicked wenn nach zwei Sekunden wird angezeigt das zweite Bild, so dass das funktioniert.

Aber was ich will ist, dass sich mein drittes Bild nach zwei Sekunden automatisch ändert, ohne zu recken. Gibt es eine Möglichkeit, ein Bild in Tkinter live zu aktualisieren oder irgendwelche Ideen, wie ich vorgehen könnte?

Antwort

2

Dies ist ein allgemeines Muster. Sie sollten Tk.after verwenden, um eine Funktion auszuführen, die das Bild ändert und dann die nächste Änderung plant.

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

Dann rufen Sie es einmal und lass es seine Sache für immer tun.

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

Es gab Dinge, die ich ändern musste, aber tk.after ist genau das, wonach ich suchte, danke! – RayBae

Verwandte Themen