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
信号QMainWindow
的close()
方法绑定
self.c = Communicate()
...
self.c.closeApp.connect(self.close)
点击窗口的时候,发送closeApp信号,程序终止
def mousePressEvent(self, event):
self.c.closeApp.emit()