PyQt5 信号和槽
所有的GUI程序都是事件驱动的,事件主要由用户触发,也可能是程序触发。
PyQt5有一个独特的signal&slot(信号槽)机制来处理事件。信号槽用于对象间的通信。signal在某一特定事件发生时被触发,slot可以是任何callable对象。当signal触发时会调用与之相连的slot。
通用表达式:widget.signal.connect(slot)
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(250, 155) self.setWindowTitle('title') # 实例化QPushButton对象 self.button = QPushButton('Start', self) # 连接信号和槽 self.button.clicked.connect(self.change_text) self.show() def change_text(self): if self.button.text() == 'Start': self.button.setText('Stop') else: self.button.setText('Start') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())