我编写了一段非常简单的代码片段,只是为了尝试tkinter
:
import tkinter as tk
root=tk.Tk()
frame = tk.Frame(root).pack()
button = tk.Button(frame,
text="next",
command=root.quit).pack()
root.mainloop()
上面的代码导致窗口冻结。有人可以向我解释这种行为背后的原因是什么?
答案 0 :(得分:6)
从初始化行分隔pack()
将解决您的问题。
import tkinter as tk
root=tk.Tk()
frame=tk.Frame(root)
frame.pack()
button = tk.Button(frame,text="next",command=root.quit)
button.pack()
root.mainloop()
答案 1 :(得分:1)
在游戏中为时已晚,但是我之前也遇到过类似的问题。我正在使用Jupyter Notebook运行代码。
使用command=root.quit
代替使用command=root.destroy
。我不是专家,但是如果我理解正确,root.quit
也会尝试退出IDE,而root.destroy
只会退出Tkinter窗口。
答案 2 :(得分:0)
我遇到了同样的问题。
我使用的是 Python 3.7 和 Spyder。主要问题是 Spyder,而不是代码。 我改用 Jupyter Notebook 并且成功了。