PyQt(Python+Qt)学习随笔:信号签名中的万能Python类型PyQt_PyObject
阅读原文时间:2023年07月10日阅读:1

信号在定义时参数如果使用字符串‘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())

可以看到发射信号时,可以直接将输入框对象直接作为参数发送过去,也可以取得输入框的文本发送过去,对应的信号和槽都是同一个。