Ich versuche, ein benutzerdefiniertes Signal (in einer TCP
Client-Klasse) mit einer Methode zu verbinden, die ein Protokoll mit den Daten aktualisiert, die vom Server und was nicht gesendet werden.PySide/Qt: Zu viele Argumente, um ein Signal mit einem Slot zu verbinden?
Hier ist die Erklärung der TCP
Client-Klasse:
class CarSocket(QObject):
logSignal = Signal(str, str)
...
def __init__(self, ...):
super(CarSocket, self).__init__()
...
Und die Methode, die ich zu logSignal
verbinden bin versucht:
def addToLog(self, text, mode='NORMAL'):
if mode == 'RAW':
toAdd = text
else:
toAdd = "<p>{}</p> \n <hr> \n".format(text)
self.log.logEdit.append(toAdd)
So schreibe ich diese Zeile, wenn meine Anwendung zu initialisieren:
self.carSocket.logSignal.connect(self.addToLog)
Und ich bekomme einen wirklich seltsamen Bug wh
Traceback (most recent call last):
File "/home/ahmed/workspace/autonomee/main.py", line 286, in <module>
window = MainWindow()
File "/home/ahmed/workspace/autonomee/main.py", line 115, in __init__
self.carSocket.logSignal.connect(self.addToLog)
TypeError: connect() takes exactly 3 arguments (4 given)
[Finished in 0.5s with exit code 1]
Jeder kann dabei helfen: en ich es ausführen?
Es muss angemerkt werden, dass ich bereits erfolgreich ein benutzerdefiniertes Signal an eine andere Klasse angeschlossen habe (mit einem int, verbunden mit einer Methode der Klasse selbst) und dass ich keine Probleme habe, Standard-Signale mit Standard-Steckplätzen zu verbinden (wie self.button.clicked.connect(self.edit.clear)
) oder etwas ähnliches)
Ich habe Ihren Code getestet und es funktionierte gut für mich, sowohl mit PySide und PyQt4. Sind Sie auf die neueste Version von PySide aktualisiert? BTW, ich habe [das] (http://pastebin.com/JUEEDM5f) als ein grobes Beispiel, um es zu testen, ist es im Grunde richtig? – BrtH
Ihre Beispiele funktioniert:/(und wie gesagt ich arbeite bereits mit einem anderen benutzerdefinierten Signal, in einer anderen Klasse, das funktioniert perfekt). Ich habe auch die neueste Version von PySide: 1.1.2 – halflings
Der vollständige Quellcode (minus der Verbindungslinie des Signals) finden Sie unter: https://github.com/halflings/autonomee (die Signalverbindung sollte am 'erfolgen main.py'; und die 'CarSocket' Klasse ist in' carsocket.py' – halflings