PyQt5学习笔记(十三):重新实现信号槽过程

在 Qt 中有非常多好用的信号槽函数,这些都是默认的,事实上我们完全可以在 PyQt 中重新实现这些信号槽的过程。本文由 Cescfangs 译自 ZetCode pyqt5系列教程 并作适当修改

在这次的学习笔记中,我们将重构按下 Esc 键时触发的行为,先上源代码:

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget


class exp(QWidget):

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

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 400, 400)
        self.setWindowTitle('Escape')

    def keyPressEvent(self, e):

        if e.key() == Qt.Key_Escape:
            self.close()

        elif e.key() == Qt.Key_Alt:
            self.setWindowTitle('Alt')

if __name__ == '__main__':

    import sys
    app = QApplication(sys.argv)
    ex = exp()
    ex.show()
    sys.exit(app.exec_())

以上的代码实现的功能是按下Esc键的时候退出程序,按下Alt的时候将程序标题设置为Alt。

 def keyPressEvent(self, e):

        if e.key() == Qt.Key_Escape:
            self.close()
        elif e.key() == Qt.Key_Alt:
             self.setWindowTitle('Alt')

重新定义了 keyPressEvent() 这个函数,当按下 Esc 时,退出这个程序,按下 Alt 时将窗口的标题改为 'Alt'。

Escape
Alt
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容