[pyar] error que no alcanzo a comprender
Roberto Alsina
ralsina en netmanagers.com.ar
Jue Jul 5 17:12:10 ART 2012
On 07/05/2012 05:05 PM, Fernando Gonzalez wrote:
Acá decís que encontre y noencontre toman un argumento, que se llama self:
> def encontre(self):
> print "OK"
>
> def noencontre(self):
> print "No"
Acá conectás dos señales a esas funciones:
> f1.connect(f1, QtCore.SIGNAL("datoOk"), encontre)
> f1.connect(f1, QtCore.SIGNAL("Cancelar"), noencontre)
Y acá estás emitiendo las señales sin argumentos:
def DatoValido(self):
self.emit(QtCore.SIGNAL("datoOk"))
def Cancela(self):
self.emit(QtCore.SIGNAL("Cancelar"))
> ahora cuando pulsa cualquiera de los dos botones en la consola me aparece:
>
> TypeError: noencontre() takes exactly 1 argument (0 given)
Ahora bien, normalmente "self" se usa como primer argumento en las
funciones que son miembros de clases, no en las que están definidas por
ahí nomás, así que sospecho que lo que querías hacer es definir encontre
y noencontre adentro de CtrlBuscar, no adentro del if?
Por otro lado, si haces eso, te van a dar error los connect, que
deberian pasar a ser:
f1.connect(f1, QtCore.SIGNAL("datoOk"), f1.encontre)
f1.connect(f1, QtCore.SIGNAL("Cancelar"), f1.noencontre)
Yo personalmente usaría la sintaxis nueva de signals y slots que es
mucho más clara, pero bueno, esto también es válido.
Por otro otro lado, el usar self así muestra que te convendría repasar
un poquito el tuto de python.
Un abrazo!
More information about the pyar
mailing list