相关文章推荐

【Python】【PyQt5】按住esc键关闭程序

参考文献: PyQt5教程(四)--事件与信号 - CSDN博客


本文在滑块显示数字的基础上修改增添按住esc按键关闭程序的功能

# -*- coding: utf-8 -*-
import sys
from PyQt5 import QtWidgets,QtCore
class Esc(QtWidgets.QWidget):#继承自父类QtWidgets.QMainWindow
    def __init__(self,parent = None):#parent = None代表此QWidget属于最上层的窗口,也就是MainWindows.
        super(Esc, self).__init__()#因为继承关系,要对父类初始化
#通过super初始化父类,__init__()函数无self,若直接QtWidgets.QMainWindow).__init__(self),括号里是有self的
        self.resize(600, 500)
        self.setWindowTitle(u'按住esc键关闭程序')  # 仅仅设置窗体标题,不设置位置。
        lcd=QtWidgets.QLCDNumber(self)#创建LCD数字显示栏
        slider=QtWidgets.QSlider(QtCore.Qt.Horizontal,self)#创建滑块
        vbox = QtWidgets.QVBoxLayout()  # 垂直布局
        vbox.addWidget(lcd)#将lcd数字显示控件放入vbox垂直布局中
        vbox.addWidget(slider)#将slider滑块控件放入vbox垂直布局中
        self.setLayout(vbox)  # 对整个窗口实现垂直布局
        slider.valueChanged.connect(lcd.display)#int限定滑动范围为整数
    def keyPressEvent(self, event):#重新实现了keyPressEvent()事件处理器。
        #按住键盘事件
        #这个事件是PyQt自带的自动运行的,当我修改后,其内容也会自动调用
        if event.key() == QtCore.Qt.Key_Escape:#当我们按住键盘是esc按键时
             self.close()#关闭程序
 
推荐文章