我正在用Tkinter编写幻灯片程序,但我不知道如何在不绑定键的情况下转到下一个图像。在Python中退出Tks mainloop?
import os, sys
import Tkinter
import Image, ImageTk
import time
root = Tkinter.Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.overrideredirect(1)
root.geometry("%dx%d+0+0" % (w, h))
root.focus_set()
root.bind("<Escape>", lambda e: e.widget.quit())
image_path = os.path.join(os.getcwd(), 'images/')
dirlist = os.listdir(image_path)
for f in dirlist:
try:
image = Image.open(image_path+f)
tkpi = ImageTk.PhotoImage(image)
label_image = Tkinter.Label(root, image=tkpi) # ?
label_image.place(x=0,y=0,width=w,height=h)
root.mainloop(0)
except IOError:
pass
root.destroy()
我想补充一个time.sleep(10)“而不是”的root.mainloop(0),因此它会10S后进入下一个图像。现在,当我按下ESC时它会改变。我怎样才能在那里有一个计时器?
编辑:我应该补充说,我不希望另一个线程即使工作也不会进行睡眠。
启动和停止主循环没有太大的意义 - 这是一个无限循环,旨在为你的程序的运行寿命。 – 2010-05-03 15:39:09
[这里是使用Tkinter的幻灯片的完整示例](https://gist.github.com/8b05c3ea0302f0e2c14c) – jfs 2012-12-15 18:22:00