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'。

PyQt5学习笔记(十三):重新实现信号槽过程_第1张图片
Escape
PyQt5学习笔记(十三):重新实现信号槽过程_第2张图片
Alt

你可能感兴趣的:(PyQt5学习笔记(十三):重新实现信号槽过程)