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_())

posted @ 2020-01-16 10:11  PIPO2  阅读(263)  评论(0编辑  收藏  举报