当我 运行 我的 python 程序时,为什么我的 tk 小部件打不开?

Why will my tk widget not open when I run my python program?

我认为它与 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()

在底部对 root.mainloop() 的调用是启动您的小部件并保持它的原因 运行,并且在它之前您创建了一个无限循环,因此该小部件永远无法真正启动。

这个答案可能接近您想要实现的目标: how-to-create-a-timer-using-tkinter