学习《PyQt4入门指南 PDF中文版.pdf 》笔记
继承自QtCore.QObject的对象均可以发射信号。如果我们单击一个按钮,那么一个clicked()信号就会被触发。在接下来的示例中,我们将学习如果手动发射一个信号。
<span style="font-size:12px;">#!/usr/bin/python # emit.py from PyQt5.QtWidgets import QApplication from PyQt5 import QtWidgets from PyQt5.QtCore import pyqtSignal class Emit(QtWidgets.QWidget): closeEmitApp = pyqtSignal() def __init__(self, parent= None): QtWidgets.QWidget.__init__(self) self.setWindowTitle('escape') self.resize(350, 300) self.closeEmitApp.connect(self.close) def mousePressEvent(self, event): self.closeEmitApp.emit() if __name__ == "__main__": import sys app = QApplication(sys.argv) qb = Emit() qb.show() sys.exit(app.exec_())</span>
在以上的示例中,我们创建了一个新的信号closeEmitApp(),该信号在按下鼠标事件发生时被发射。
self.closeEmitApp.emit()
使用PyQt内建的emit函数来发射信号closeEmitApp()
self.closeEmitApp.connect(self.close)
当触发信号槽后,使用connect函数手动创建的信号-槽连接起来,来执行close函数。这个时候用户按下鼠标的任意键时,程序就会结束。