TCP
カスタム シグナル (クライアント クラス内) を、サーバーから送信されたデータなどでログを更新するメソッドに接続しようとしています。
TCP
クライアントクラスの宣言は次のとおりです。
class CarSocket(QObject):
logSignal = Signal(str, str)
...
def __init__(self, ...):
super(CarSocket, self).__init__()
...
そして、私が接続しようとしている方法logSignal
:
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)
したがって、アプリケーションを初期化するときに次の行を記述します。
self.carSocket.logSignal.connect(self.addToLog)
そして、実行すると本当に奇妙なバグが発生します。
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]
誰でも助けることができますか?
私はすでに別のクラスにカスタムシグナルを正常に接続しており(クラス自体のメソッドに接続されたintを使用)、「デフォルト」シグナルをデフォルトスロット(self.button.clicked.connect(self.edit.clear)
または同様のもの)に接続することに問題はないことに注意する必要があります。