【发布时间】:2018-10-31 08:26:16
【问题描述】:
我得到了一个代码,它在 Tkinter(根,Tk 对象)中创建了一个隐藏的主窗口,而不是一个顶级窗口。我使用after() 将mainloop() 传递给其余代码,但窗口只是冻结了。我不想破坏应用程序,只是为了运行其余代码。
我将 after 中的毫秒数设置为 10,000,并注意到仅在 10 秒后,当它打印 After mainloop 时,窗口就会冻结/。
有人知道为什么吗?我可以做些什么来让它发挥作用?
root = Tk()
top = Toplevel()
top.after(10000, top.quit)
top.mainloop()
print 'After mainloop'
非常感谢
【问题讨论】:
-
“冻结”是什么意思?你怎么知道,因为你在主窗口中没有任何小部件?此外,在顶层窗口调用
mainloop也没有任何意义。您应该在 tkinter 程序中只调用一次mainloop。 -
冻结是指我不能再移动它,甚至不能尝试关闭它,而且当我放置小部件对其进行测试时,它们没有反应。但是我找到了一种通过线程调用 mainloop() 来克服这个障碍的方法,所以我的程序正在运行。感谢所有试图提供帮助的人。
-
这个五行小程序绝对不需要线程。你确定这个确切的代码会冻结在你身上吗?
-
这个确切的代码冻结了,但我计划将它开发成比 5 行更大、更复杂的东西。这只是为了理解并使我的问题易于理解
-
你是如何运行代码的?从命令行使用
python the_program.py,或者您是否使用其他方式运行代码?
标签: python-2.7 user-interface tkinter graphics