2
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”打印到控制台(只是添加以查看我返回的内容),如果我第三次单击它,则消息框会关闭并正确的笔记本页面打开。'no' 也会发生相同的行为。第一次单击,什么都没有,消息框保持打开状态,但消息框中的文本消失了,只剩下是,否。第二次 False 打印到控制台,盒子保持打开状态,第三次,盒子关闭,正确的笔记本页面打开。有人可以解释一下我做错了什么吗

4

1 回答 1

5

In the code you posted, you are opening three dialogs. Every time you call askyesno you will get a dialog. You need to call askyesno once, save the value that it returns, then use that value in your test.

result = messagebox.askyesno(...)
if result:
    ...
于 2013-05-15T12:31:18.087 回答