Exacto. Pero quería preguntarte porque el siguiente programa requiere la línea 34(
gtk.main_quit()) para que la aplicación se cierre al responder Sí en el díalogo. ¿Si ya hemos devuelto
False no tendría que llamar a
destroy y cerrarse?.
Código Python:
Ver originalimport pygtk
pygtk.require("2.0")
import gtk
class UI(object):
def __init__(self):
self.label = gtk.Label("Hello world!")
self.window = self.make_window()
self.window.show_all()
def make_window(self):
window = gtk.Window()
window.set_title("Hi!")
window.set_default_size(200, 100)
window.connect("delete-event", self.win_close, None)
window.add(self.label)
return window
def start(self):
gtk.main()
def win_close(self, widget, event, data):
dialog = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO, gtk.BUTTONS_YES_NO,
"Quit?")
dialog.set_title(":(")
response = dialog.run()
dialog.destroy()
if response == gtk.RESPONSE_YES:
gtk.main_quit()
return False # returning False makes "destroy-event" be signalled
# for the window.
else:
return True # returning True avoids it to signal "destroy-event"
def main():
myUI = UI()
myUI.start()
print "Now we're outside the UI, but still in the program"
main()