I have been trying to add an askquestion dialog box to a delete button in Tkinter. Curently I have a button that deletes the contents of a folder once it is pressed I would like to add a yes/no confirmation question.
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()
Everytime I run this I get the “Deleted” statement even if I press “No”. Can an if statement be added to a tkMessageBox?
The problem is your
if-statement. You need to get the result from the dialog (which will be'yes'or'no') and compare with that. Note the 2nd and 3rd line in the code below.Now for as to why your code seems to work: In Python a large number of types can be used in contexts where boolean values are expected. So for instance you can do:
The same thing happens for strings, where any non-empty string behaves like
Trueand an empty string behaves likeFalse. Henceif 'yes':always executing.