[pyar] error desde una clase que llama a otra

Fernando Gonzalez fagonzalez en steel.com.ar
Lun Mayo 28 22:15:40 ART 2012


El 28/05/2012 21:41, Roberto Alsina escribió:
> On 05/28/2012 09:39 PM, Fernando Gonzalez wrote:
>> El 28/05/2012 16:13, Roberto Alsina escribió:
>>> On 05/28/2012 04:11 PM, Fernando Gonzalez wrote:
>>>>
>>>> Por lo que entiendo, me dice q falta un argumento en SIGNAL(), pero
>>>> clicked() no tiene argumento, o si, alguien se da una idea cual es el
>>>> error
>>>
>>> No uses esa sintaxis de conexión, usá la nueva, que es muuuuuucho más
>>> linda:
>>>
>>> self.cmdBusca.clicked.connect(self.BuscarCliente)
>>>
>> bien, esta sintaxis funciono, muchas gracias Roberto, ahora el problema
>> que la SIGNAL "DatoValido" que genera la clase hija, cuando es atendida
>> por la clase llamadora genera un bucle recursivo y no entiendo por que,
>> alguna idea?
>
> Sin ver código? No, ninguna!
>
> Ok, bueno, una: es muy probable que hayas conectado clicked a algo que
> vuelve a generar la misma señal.
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
>
ok perdon, resumo un poco, clase llamadora

class BuscarYReemplazar(QtGui.QDialog, fichacli.Ui_fichacliente):
     def __init__(self, parent=None):
         super(BuscarYReemplazar, self).__init__(parent)
         #self.__text = unicode(text)
         self.__index = 0
         self.setupUi(self)
         self.updateUI()

     def updateUI(self):
         self.cmdBorra.setEnabled(False)
         #self.cmdNuevo.setEnabled(True)
         #self.cmdBusca.setEnabled(True)
         self.cmdGraba.setEnabled(False)
         #self.connect(self.cmdBusca, QtCore.SIGNAL("clicked()"), 
self.BuscarCliente)
         self.cmdBusca.clicked.connect(self.BuscarCliente)


esta es la def que se ejecuta cuando pulso el botón buscar el formulario 
cliente

     def BuscarCliente(self):
         cBusq = buscarcli.BuscarCliente()
         cBusq.connect(cBusq,QtCore.SIGNAL("DatoValido"),self.datoValido)
         cBusq.exec_()

y esta def atiende a la SIGNAL que genera buscarcli, esta es la que se 
hace recursiva y no entiendo por que
     def datoValido(self, Nombre):
         print "Cliente: " + Nombre


aca esta el código de buscarcli:

class BuscarCliente(QtGui.QDialog, buscar.Ui_Buscar):

     nombre = "DATO VALIDO"
     nodato = "CANCELO"
     def __init__(self, parent=None):
         super(BuscarCliente, self).__init__(parent)
         self.setupUi(self)
         self.updateUI()

     def updateUI(self):
         #conecto los botones con los procedimientos que disparan los 
eventos
         #self.connect(self.cmdOk, 
QtCore.SIGNAL("clicked()"),self.DatoValido())
 
#self.connect(self.cmdCancela,QtCore.SIGNAL("clicked()"),self.Cancela())
         self.cmdOk.clicked.connect(self.DatoValido)

     #disparo los eventos
     def DatoValido(self):
         self.emit(QtCore.SIGNAL("DatoValido"),self.nombre)
         #print "OK"

     def Cancela(self):
         self.emit(QtCore.SIGNAL("Cancela"),self.nodato)


desde ya muchas gracias

Fernando





More information about the pyar mailing list