关闭

PyQt5:发射信号(18)

382人阅读 评论(0) 收藏 举报
分类:

学习《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函数。这个时候用户按下鼠标的任意键时,程序就会结束。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:51261次
    • 积分:993
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:1篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论