【发布时间】:2014-08-22 05:37:18
【问题描述】:
当我的程序执行时,python GUI 冻结。这是我的主要代码。我可以在做线程方面得到一些帮助吗?所以执行发生在后台,如果我想结束执行,我仍然可以使用 GUI 中的“x”按钮吗?目前我只是要求用户关闭 cmd 以结束程序。
if __name__ == "__main__":
root = Tk()
root.title('Log')
root.geometry("400x220")
font1=('times', 15)
font2=('times', 10)
#Label inside root
Label(root, relief=GROOVE, font=font2, text="level").pack()
variable = StringVar(root)
variable.set("INFO") # default value
w = OptionMenu(root, variable, "CRITICAL", "DEBUG")
w.pack()
Button(root, font=font1, background= "yellow", text='START',command=main).pack()
Label(root, text="To end just close the CMD window").pack()
root.mainloop()
【问题讨论】:
-
在线程中到底应该做什么?您打算更新 GUI 吗?请注意,Tkinter 不是线程安全的。
-
main函数在哪里?有问题的代码在哪里?也许你可以用tk.After()做到这一点?
标签: python tkinter python-multithreading