[pyar] error desde una clase que llama a otra

Fernando Gonzalez fagonzalez en steel.com.ar
Lun Mayo 28 16:11:13 ART 2012


Hola a todos, estoy haciendo las primeras pruebas con python, y hasta 
aca todo bien, cuando quiero profundizar un poco, me salen algunas dudas 
por los mensajes q me tiran
aca les muestro un trozo de código que escribí

import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
import fichacli
import buscarcli

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.connect(self.cmdBusca, QtCore.SIGNAL("clicked()"), 
self.BuscarCliente)

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

en buscarcli tengo un botón y el siguiente código

import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
import buscar

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())

     #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)

y cuando hago click de cmdBuscar de BuscarYReemplazar me tira lo 
siguiente por la consola:

C:\PYTHON\QT\proyecto MDI1>cliente.py
OK
Traceback (most recent call last):
   File "C:\PYTHON\QT\proyecto MDI1\cliente.py", line 34, in BuscarCliente
     cBusq = buscarcli.BuscarCliente()
   File "C:\PYTHON\QT\proyecto MDI1\buscarcli.py", line 24, in __init__
     self.updateUI()
   File "C:\PYTHON\QT\proyecto MDI1\buscarcli.py", line 28, in updateUI
     self.connect(self.cmdOk, QtCore.SIGNAL("clicked()"),self.DatoValido())
TypeError: arguments did not match any overloaded call:
   QObject.connect(QObject, SIGNAL(), QObject, SLOT(), 
Qt.ConnectionType=Qt.AutoC
onnection): argument 3 has unexpected type 'NoneType'
   QObject.connect(QObject, SIGNAL(), callable, 
Qt.ConnectionType=Qt.AutoConnecti
on): argument 3 has unexpected type 'NoneType'
   QObject.connect(QObject, SIGNAL(), SLOT(), 
Qt.ConnectionType=Qt.AutoConnection
): argument 3 has unexpected type 'NoneType'

C:\PYTHON\QT\proyecto MDI1>

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

desde ya gracias

Fer

PD: Tanto fichacli como buscar esta importadas desde QtDesigner con el 
pyuic4.exe





More information about the pyar mailing list