hal*_*ngs 7 python qt signals pyqt pyside
我正在尝试将自定义信号(在TCP客户端类中)连接到使用服务器发送的数据更新日志的方法等等.
这是TCP客户端类的声明:
class CarSocket(QObject):
logSignal = Signal(str, str)
...
def __init__(self, ...):
super(CarSocket, self).__init__()
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试连接的方法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)
Run Code Online (Sandbox Code Playgroud)
所以,我在初始化我的应用程序时写了这一行:
self.carSocket.logSignal.connect(self.addToLog)
Run Code Online (Sandbox Code Playgroud)
当我执行它时,我得到一个非常奇怪的错误:
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]
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
必须注意的是,我已经成功地将另一个类上的自定义信号连接起来(使用int,连接到类本身的方法),并且我将"默认"信号与默认插槽(如类似self.button.clicked.connect(self.edit.clear)或类似的东西)连接没有任何问题
小智 8
刚用我自己的代码遇到这个问题,想要贡献我认为的答案.您的CarSocket类中还有一个名为"connect"的函数.尝试重命名该功能,看看会发生什么.
在我的情况下,我的一个发出信号的类也有一个"连接"功能,并重命名它修复了问题.它应该不会引起问题,因为你从Signal()类型本身调用connect,但似乎有问题.
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |