[pyar] error que no alcanzo a comprender

Fernando Gonzalez fagonzalez en steel.com.ar
Jue Jul 5 17:42:04 ART 2012


El 05/07/2012 17:12, Roberto Alsina escribió:
> 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.

si tenes razón, es mucho mas clara, solo que cuando escribi esta 
maquetita, me dio un error y no me puse a verlo bien.

Gracias Robert

Fernando

PD: estoy usando el ninja ide y trabaja muy bien, lo único que no me 
funciona es el ejecutar un modulo desde el mismo ninja, pero no me 
preocupa, lo ejecuto desde la consola






More information about the pyar mailing list