Tkinter的askquestion对话框(Tkinter askquestion dialog

2019-07-30 04:07发布

我一直在努力的askquestion对话框添加到Tkinter的删除按钮。 Curently我有一个按钮,一旦按下我想补充的是/否确认疑问,删除文件夹的内容。

import Tkinter
import tkMessageBox

top = Tkinter.Tk()
def deleteme():
    tkMessageBox.askquestion("Delete", "Are You Sure?", icon='warning')
    if 'yes':
        print "Deleted"
    else:
        print "I'm Not Deleted Yet"
B1 = Tkinter.Button(top, text = "Delete", command = deleteme)
B1.pack()
top.mainloop()

每次我运行此我得到了“已删除”的声明,即使我按“否”。 可以if语句添加到tkMessageBox?

Answer 1:

问题是你if语句来。 你需要得到从对话的结果(这将是'yes''no' ),并与之媲美。 注意下面的代码中的第2和第3行。

def deleteme():
    result = tkMessageBox.askquestion("Delete", "Are You Sure?", icon='warning')
    if result == 'yes':
        print "Deleted"
    else:
        print "I'm Not Deleted Yet"

现在,为什么你的代码似乎工作:在Python可以在布尔值预期的环境中使用了大量的类型。 因此,举例来说,你可以这样做:

arr = [10, 10]
if arr:
    print "arr is non-empty"
else:
    print "arr is empty"

同样的事情发生的字符串,其中任何非空字符串的行为就像True和一个空字符串的行为就像False 。 因此, if 'yes':始终执行。



文章来源: Tkinter askquestion dialog box