[pyar] errores en el instanciamiento

Fernando Gonzalez fagonzalez en steel.com.ar
Mie Jun 13 13:24:36 ART 2012


Hola a todos, estoy haciendo una importación de mis bibliotecas a 
python, tengo una clase que despliega dos botones, el código:

import sys
from PyQt4 import QtCore
from PyQt4 import QtGui


class frmHijo(QtGui.QDialog):

     a = 0

     def __init__(self, parent=None):
         super(frmHijo, self).__init__(parent)
         self.resize(499, 300)
         self.cmdCancel = QtGui.QPushButton()
         self.cmdOk = QtGui.QPushButton()
         self.cmdOk.setText("&OK")
         self.cmdCancel.setText("&Cancelar")
         self.lbl1 = QtGui.QLabel()
         self.lbl1.setText("Cliente")
         self.Hlayout = QtGui.QHBoxLayout()
         self.Hlayout.setGeometry(QtCore.QRect(420, 0, 71, 271))
         self.Hlayout.addWidget(self.lbl1)
         self.Vlayout = QtGui.QVBoxLayout()
         self.Vlayout.setGeometry(QtCore.QRect(420,0,71,27))
         self.Vlayout.addWidget(self.cmdCancel)
         self.Vlayout.addWidget(self.cmdOk)
         self.setLayout(self.Vlayout)
         self.UpdateUI()

     def UpdateUI(self):
         self.connect(self.cmdOk, QtCore.SIGNAL("clicked()"),self.Respuesta)

     def Respuesta(self):
         self.emit(QtCore.SIGNAL("BotonOk"), self.a)
         self.a = self.a + 1
         #print self.a

esta clase es instaciada desde esta otra clase:

import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
import hijo01

class frmPadre(QtGui.QDialog):

     def __init__(self, parent=None):
         super(frmPadre, self).__init__(parent)
         self.spin1 = QtGui.QSpinBox()
         self.cmdOk = QtGui.QPushButton()
         self.cmdOk.setText("&OK")
         layout =QtGui.QVBoxLayout()
         layout.addWidget(self.spin1)
         layout.addWidget(self.cmdOk)
         self.setLayout(layout)
         self.hijo = hijo01.frmHijo()
         self.cmdOk.clicked.connect(self.llamarAlHijo)


     def llamarAlHijo(self):

         self.cmdOk.clicked.connect(self.llamarAlHijo)
         self.hijo.connect(self.hijo, QtCore.SIGNAL("BotonOk"), 
self.RespondeElHijo)
         self.hijo.show()

     def RespondeElHijo(self, a):
         print u"todo ok, llamada n?mero: " + str(a)
         del(self.hijo)
         self.hijo = hijo01.frmHijo()


def main():
     app = QtGui.QApplication(sys.argv)
     form = frmPadre()
     form.show()
     app.exec_()

if __name__ == '__main__':
     main()

el problema es que de esta manera cada vez que se ejecuta llamarAlHijo 
se instancia la clase hijo01, todo bien, cuando pulso el boton Ok de la 
clase hijo01 se ejecuta RespondeElHijo, y se muesta el valor a, siempre 
es "0", pero al ejecutar la segunda vez repsonde 2 veces, la tercera 
cuatro  asi sucesivamente, que es lo que esta mal?

desde a gracias

Fer




More information about the pyar mailing list