信号在定义时参数如果使用字符串‘PyQt_PyObject’表示参数可以是任何Python类型,这通常用于传递实际Python类型未知的对象,下面来举例说明:
- 定义1个带2个未知Python类型参数的信号
sig2 = QtCore.pyqtSignal('PyQt_PyObject','PyQt_PyObject')
- 定义槽函数
def sigRecv(self, val1, val2): # 接收信号的槽函数
self.w_displayInf.append(f"Received signal:{val1},{val2}")
- 建立信号和槽的连接
self.sig2.connect(self.sigRecv)
- 发射信号
self.sig2.emit(self.count,self.sigInfo) #sigInfo为一个lineEdit的输入框对象
self.sig2.emit(self.count,self.sigInfo.text())
可以看到发射信号时,可以直接将输入框对象直接作为参数发送过去,也可以取得输入框的文本发送过去,对应的信号和槽都是同一个。