我认为它与while循环有关,因为当我将它注释掉时,其余代码工作正常。循环本身正在运行。没有错误,小部件就是没有打开。 我的代码:
from Tkinter import *
from PIL import ImageTk, Image
import time
from os import listdir
from os.path import isfile, join, abspath
root=Tk()
myContainer1 = Frame(root)
myContainer1.pack()
root.attributes("-fullscreen", True)
root.bind("<Escape>", lambda e: e.widget.quit())
mypath = "E:/"
images = [f for f in listdir(mypath) if isfile(join(mypath, f))]
length = len(images)
while True:
for n in range(length):
imgPath = abspath(mypath + images[n])
image = Image.open(imgPath)
photo = ImageTk.PhotoImage(image)
label = Label(image=photo)
label.image = photo
label.pack()
print images[n] #for testing purposes
time.sleep(10)
root.mainloop()
答案 0 :(得分:1)
底部调用root.mainloop()是启动窗口小部件并使其保持运行的原因,在创建无限循环之前,窗口小部件永远不能实际启动。
这个答案可能接近你想要达到的目标: how-to-create-a-timer-using-tkinter