Tema: Evento PyQt4
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2010, 05:49
fj87
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Mensaje Evento PyQt4

Hola a todos!

He comenzado a aprender un poco acerca de como realizar una GUI en python y para ello, he estado mirando algo de PyQt. Me he quedado atascado en este punto que no se realmente en que falla.
Mi intencion es añadir un boton para cerrar la aplicacion y que requiera de una confirmacion para ejecutar la accion. El código que he elaborado es el siguiente:

Código Python:
Ver original
  1. import sys
  2. from PyQt4 import QtGui, QtCore
  3.  
  4. class VentanaPrincipal(QtGui.QWidget):
  5.     def __init__(self, parent=None):
  6.         QtGui.QWidget.__init__(self, parent)
  7.  
  8. #Colocacion de la ventana en pantalla y cambio de icono de la aplicacion.
  9.         self.setGeometry(250, 200, 800, 600)
  10.         self.setWindowTitle(
  11.         'prueba')
  12.         self.setWindowIcon(QtGui.QIcon(
  13.         'C:/dibujo.GIF'))
  14.  
  15. #Definicion de botón QUIT para salir de la aplicación.
  16.         quit = QtGui.QPushButton('Salir', self)
  17.         quit.setGeometry(730, 555, 60, 35)
  18.         self.connect(quit, QtCore.SIGNAL('clicked()'),QtGui.qApp, QtCore.SLOT('quit()'))
  19.  
  20.  
  21.  
  22. #Definición de un evento para la salida del programa
  23.     def closeEvent(self, event):
  24.             reply = QtGui.QMessageBox.question(self, 'Confirmacion de cierre de aplicacion',"Desea cerrar la aplicacion?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
  25.             if reply == QtGui.QMessageBox.Yes:
  26.                 event.accept()
  27.             else:
  28.                 event.ignore()
  29.  
  30.  
  31. if __name__=="__main__":
  32.  
  33.     app = QtGui.QApplication(sys.argv)
  34.     window = VentanaPrincipal()
  35.     window.show()
  36.     sys.exit(app.exec_())

Con este código consigo que la confirmación se realice al pulsar la X de la esquina superior derecha, pero al pulsar el botón definido, se produce la salida del programa sin ningún tipo de confirmación (aparte de cerrarme el editor de código, por lo que seguramente ocurra algún error).

Alguien sabe dónde está el error?

Un saludo