【问题标题】:Tkinter Stop Program Execution ButtonTkinter 停止程序执行按钮
【发布时间】: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)

标签: python tkinter exit


【解决方案1】:

创建一个新功能,您可以在其中定义一个新的 tkinter 屏幕,该屏幕将在用户按下 NO 按钮时出现

def no_button_function():   # function that will be called when user pressed no button
    new_window = tk.Toplevel(window)
    new_window.title('See You Next Time')
    # create the good bye message using labels and buttons accordingly 

现在将这个函数传递给NO按钮

btn_no = tk.Button(master=window, text="No", command=no_button_function)
btn_no.grid(row=2, column=2, sticky="nsew")

希望你明白这一点。 满意就打勾

【讨论】:

    猜你喜欢
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多