首页 > 解决方案 > 警报框问题总是返回响应 == 0

问题描述

尝试遵循关于 tkinter 的教程(https://www.datacamp.com/community/tutorials/gui-tkinter-python),我刚刚进入关于响应和消息框的部分。当我尝试运行代码时,如果我在末尾包含 .pack(),我会得到 AttributeError: 'str' object has no attribute 'pack',和/或它会显示“立即注销”。无论我点击是或否。

尝试将响应 == 1 更改为响应 == 0,仍然会发生。我已按照我能找到的教程中的说明进行操作。

import tkinter, time, random
import tkinter.messagebox

window = tkinter.Tk()
window.title("GUI")

response = tkinter.messagebox.askquestion("Simple Question", "Do you love Python?")
if response == 1:
    tkinter.messagebox.showinfo("Alert Message", "Good person")
else:
    tkinter.messagebox.showinfo("Alert Message", "Log out now")
window.mainloop()

我希望输出取决于我选择的答案,但实际输出始终是“立即退出”

标签: pythontkinter

解决方案


tkinter.messagebox.askquestion返回"yes""no"

因此,您必须使用以下字符串更改代码:

if response == "yes":

推荐阅读