PyQt5 自定义按钮控件+装饰器
from PyQt5.Qt import * import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("信号和槽") self.resize(600, 500) self.func_list() def func_list(self): self.func() self.on_btn_clicked() def func(self): btn = QPushButton('按钮', self) btn.setObjectName('btn') btn.resize(80, 50) btn.move(100, 100) btn2 = QPushButton('按钮', self) btn2.setObjectName('btn2') btn2.resize(80, 50) btn2.move(100, 200) # 表示把window对象中的子对象按照objectName链接到相关的槽函数上,必须放在所有子对象的最后 QMetaObject.connectSlotsByName(self) @pyqtSlot(bool) def on_btn_clicked(self): print('点击按钮') # 上面的代码转换 # self.btn.clicked[bool].connect(self.btn_clicked) # def btn_clicked(self): # print('点击按钮') if __name__ == '__main__': app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())