【发布时间】:2021-01-18 23:24:27
【问题描述】:
我正在尝试使用 Tkinter GUI 构建一个简单的游戏。游戏的第一部分是询问一个人是否想玩。我的 Tkinter 如下所示:
window = tk.Tk()
window.rowconfigure(0, minsize=50, weight=1)
window.columnconfigure([0, 1, 2], minsize=50, weight=1)
lbl_value = tk.Label(master=window, text="Welcome!")
lbl_value.grid(row=0, column=1)
lbl_value = tk.Label(master=window, text="Would you like to play?")
lbl_value.grid(row=1, column=1)
btn_yes = tk.Button(master=window, text="Yes", command=window.destroy)
btn_yes.grid(row=2, column=0, sticky="nsew")
btn_no = tk.Button(master=window, text="No", command=**??**)
btn_no.grid(row=2, column=2, sticky="nsew")
window.mainloop()
“是”按钮按预期运行,并继续执行其余代码。然而,“否”按钮,我不知道如何让它一起退出程序的运行(不仅仅是窗口),或者更好的是,如何让它打开一个额外的窗口,说明“也许下次",然后在退出该窗口时结束程序。
【问题讨论】:
-
拨打
sys.exit退出程序。 -
没错。让它成为一个答案
-
所以在使用 sys.exit 后,程序确实停止运行,但它并没有关闭,它只是冻结并声明程序没有响应。这是停止执行的最好方法吗?
-
要彻底退出,请创建您自己的函数,该函数调用
window.quit()以停止mainloop(),然后调用sys.exit()。定义该函数后,在创建btn_no时使用(即... command=this_function)。