"""Modal dialog.""" from Tkinter import * class App: def __init__(self, parent): self.parent = parent self.create_widgets() def create_widgets(self): self.button1 = Button( self.parent, text="Press me", command=self.do_it) self.button1.pack() def do_it(self): d = MyDialog(self.parent) print "value =", d.go() class MyDialog: def __init__(self, parent): self.root = Toplevel(parent) self.label1 = Label( self.root, text="Are you sure you want to delete the file\n/etc/passwd?") self.label1.pack() self.button1 = Button( self.root, text="OK", command=self.ok) self.button1.pack(side=LEFT) self.button2 = Button( self.root, text="Cancel", command=self.cancel) self.button2.pack(side=RIGHT) self.value = -1 def go(self): self.root.grab_set() self.root.mainloop() self.root.destroy() return self.value def ok(self): print "ok" self.value = 1 self.root.quit() def cancel(self): print "cancel" self.value = 0 self.root.quit() # Boilerplate from here on... if __name__ == '__main__': root = Tk() app = App(root) root.mainloop()