Mám prográmek s GUI Tkinter a chtěl bych v něm zobrazovat obrázky, aby automaticky po určité prodlevě se změnil obrázek na následující obrázek. Potřeboval bych asi udělat nějaký generátor časových událostí, s tím, že obsluha této události zobrazí další obrázek. Můžete poradit, jak na to?
# -*- coding: utf-8 -*-
from Tkinter import *
from PIL import Image, ImageTk
from time import sleep
class Kontejner:
pass
def zmenaVelikosti (obrazek):
sirka, vyska = obrazek.size
pomer = float (vyska) / kontejner.vyska
sirka = int (sirka / pomer)
vyska = int (vyska / pomer)
obrazek = obrazek.resize ((sirka, vyska))
return obrazek
def zpracovaniObrazku (obrazek):
obr = Image.open (obrazek)
obr = zmenaVelikosti (obr)
photo = ImageTk.PhotoImage(obr)
return photo
def kresli (obrazek):
photo = zpracovaniObrazku (obrazek)
kontejner.platno.create_image(kontejner.sirka/2, kontejner.vyska/2, image=photo)
kontejner.obr = photo
kontejner = Kontejner()
kontejner.sirka = 1024
kontejner.vyska = 768
seznam = ["lekniny.jpg", "hory.jpg", "vrcholky.jpg", "stromy.jpg"]
hlavni = Tk ()
kontejner.platno = Canvas (hlavni, width = kontejner.sirka, height = kontejner.vyska)
kontejner.platno.pack (expand=1, fill=BOTH)
# --- toto nefunguje, zobrazi jen posledni obrazek ---
# --- vím proč, ale netuším, jak to vyřešit ---
for obrazek in seznam:
kresli (obrazek)
sleep (2)
# --- *** ---
hlavni.mainloop ()
Za rady díky