自定义信号实现多种参数传递
一、学习指导
信号的定义使用的是pyqtSignal()方法,此方法也可以放入一些参数丰富自定义信号的功能,这节课我们就来看看自定义信号是如何传递不同类型的参数。我们还是用上一节课自定义的信号,这里要注意参数的书写格式和从上到下传递过程中要保持一致性。
二、代码演示
from PyQt5.Qt import * import sys class Btn(QPushButton): rightSignal = pyqtSignal([str], [str, int]) def mousePressEvent(self, evt): super().mousePressEvent(evt) if evt.button() == Qt.RightButton: self.rightSignal[str, int].emit(self.text(), 555) class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("自定义信号实现多种参数传递") self.resize(600, 500) self.func_list() def func_list(self): self.func() def func(self): btn = Btn(self) btn.setText('按钮') btn.move(200, 100) def btn_press(str, a): print('鼠标被按下' + '====' + str) print(a) btn.rightSignal[str, int].connect(btn_press) if __name__ == '__main__': app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())