PyQt5 第三章事件和信号(二)

3.2 信号发送

程序展示

本例中,发送自定义的信号,创建了一个叫closeApp的信号,这个信号会在鼠标按下的时候触发,事件与QMainWindow绑定

import sys
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QMainWindow, QApplication

class Communicate(QObject):
    closeApp = pyqtSignal()


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.c = Communicate()
        self.initUI()

    def initUI(self):
        self.c.closeApp.connect(self.close)

        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('信号发送')
        self.show()

    def mousePressEvent(self, event):
        self.c.closeApp.emit()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    e = Example()
    sys.exit(app.exec_())

代码解释

Communicate类创建了一个pyqtSignal()属性的信号

class Communicate(QObject):
    
    closeApp = pyqtSignal()

closeApp信号QMainWindowclose()方法绑定

self.c = Communicate()
...
self.c.closeApp.connect(self.close) 

点击窗口的时候,发送closeApp信号,程序终止

def mousePressEvent(self, event):
    
    self.c.closeApp.emit()

下一篇 对话框(一)

猜你喜欢

转载自blog.csdn.net/zly717216/article/details/113107809
今日推荐