为什么我运行python程序时我的tk小部件无法打开?

时间:2015-11-29 10:17:02

标签: python user-interface tkinter widget

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

1 个答案:

答案 0 :(得分:1)

底部调用root.mainloop()是启动窗口小部件并使其保持运行的原因,在创建无限循环之前,窗口小部件永远不能实际启动。

这个答案可能接近你想要达到的目标: how-to-create-a-timer-using-tkinter