[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