Saludos amigos, hoy tengo el siguiente problema: Al momento de cerrar una ventana aparece un mensaje preguntando si desea salir de la interfaz, si da clic en SI se cancelan los procesos y si da clic en NO debería poder continuar en la interfaz, el problema es que si doy clic en NO se sale de igual forma. Estoy usando el "delete-event" para conectar el mensaje, probé con otros y este es el que mejor me funciona. Aquí mi código de prueba...
Código Python:
Ver original#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
from subprocess import Popen, PIPE, STDOUT
def make_box(homogeneous, spacing, expand, fill, padding):
caja = gtk.HBox(homogeneous, spacing)
caja.set_border_width(10)
etiqueta = gtk.Label("Nombre")
caja.pack_start(etiqueta, False, False, 0)
etiqueta.show()
texto1 = gtk.Entry(10)
caja.pack_start(texto1, False, False, 16)
texto1.show()
return caja
class PackBox1:
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("delete_event", close)
self.window.set_border_width(10)
box1 = gtk.VBox(False, 0)
box2 = make_box(False, 0, False, False, 0)
box1.pack_start(box2, False, False, 0)
box2.show()
button_box = gtk.HButtonBox()
button_box.set_layout(gtk.BUTTONBOX_SPREAD)
aceptar = gtk.Button(stock=gtk.STOCK_OK)
button_box.pack_start(aceptar, False, False)
box1.pack_start(button_box, False, False, 0)
aceptar.show()
button_box.show()
button = gtk.Button("Salir")
button.connect("clicked", close)
button_box.pack_start(button, True, False, 0)
box1.pack_start(button_box, True, False, 0)
self.window.add(box1)
button.show()
button_box.show()
box1.show()
self.window.show()
def close(self, widget=None):
md=gtk.MessageDialog(parent=None, flags=0, type=gtk.MESSAGE_QUESTION, buttons=gtk.BUTTONS_YES_NO, message_format="Al cerrar, todos los procedimientos que ha realizado serán eliminados.\n ¿Desea salir de la aplicación?")
md.set_title('Cerrar')
respuesta = md.run()
md.destroy()
if respuesta == gtk.RESPONSE_YES:
x2= Popen(["pkill lb"], shell=True, stdout=PIPE)
x3= Popen(["pkill live-build"], shell=True, stdout=PIPE)
self.destroy()
gtk.main_quit()
def main():
gtk.main()
return 0
if __name__ =="__main__":
packbox1 = PackBox1()
main()