tkinter askyesno消息框行为

时间:2013-05-13 12:37:33

标签: python-3.x tkinter tkmessagebox

messagebox.askyesno(0.0,'"{0}"{1} \n {2}\n'.format(search_analyte.get(),' is  not in the database.','Add,if appropriate'))
        print (str(messagebox.askyesno()))
        if messagebox.askyesno() == True:
            open_second()
        else:
            open_first()

在这段代码中,askyesno消息框打开。如果我单击“是”一次,没有任何反应,如果我再次单击它,“True”将打印到控制台(只是添加以查看我要返回的内容),如果我第三次单击它,消息框将关闭,正确的笔记本页面打开。 “否”会出现相同的行为。首先点击,没有,消息框仍然打开,但消息框中的文本消失,只留下是,否。第二次将False打印到控制台,框保持打开,第三次,框关闭,正确的记事本页面打开。有人可以解释我做错了吗

1 个答案:

答案 0 :(得分:2)

在您发布的代码中,您将打开三个对话框。每次拨打askyesno,您都会收到一个对话框。您需要调用askyesno一次,保存它返回的值,然后在测试中使用该值。

result = messagebox.askyesno(...)
if result == True:
    ...