新闻动态
你的位置:pg电子模拟器苹果版 > 新闻动态 > 15.2 PyQt5-SignalSlot信号和槽传参
15.2 PyQt5-SignalSlot信号和槽传参
2025-04-14 17:31    点击次数:65

1.传参简介PyQt5 中,信号与槽不仅实现连接,还可以传递参数。当定义一个带有参数的信号时,可以将这些参数传递给相应的槽函数。使得能够在信号触发时传递参数给槽函数进行处理。2.传参案例信号和槽传参可以用过,lambda或partial两种方式为槽函数传递参数,详见如下。import sysfrom PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication, QVBoxLayout, QWidgetfrom functools import partialclassSlotArg(QMainWindow):def__init__(self): super().__init__() self.setWindowTitle('lambda和partial方式为槽函数传递参数') self.resize(600, 400) layout = QVBoxLayout(self) self.btn1 = QPushButton('btn1') self.btn2 = QPushButton('btn2')# lambda 方式传递参数# self.btn1.clicked.connect(lambda: self.btn_click(1, 2))# self.btn2.clicked.connect(lambda: self.btn_click(44, 55))# functools.partial 方式传递参数 self.btn1.clicked.connect(partial(self.btn_click,1,2)) self.btn2.clicked.connect(partial(self.btn_click,22,33)) layout.addWidget(self.btn1) layout.addWidget(self.btn2) main_frame = QWidget() main_frame.setLayout(layout) self.setCentralWidget(main_frame)defbtn_click(self, m, n): print(m, n)if __name__ == '__main__': app = QApplication(sys.argv) w = SlotArg() w.show() sys.exit(app.exec())3.运行结果