【PyQt】keyPressEvent键盘按压事件无响应

问题描述

通过load ui 文件加载程序时,keyPressEvent键盘按压事件无响应

原因

主要是由于事件处理的方式和窗口的显示方式不正确所导致的。

解决代码

  • self:这里的self作为loadUi函数的第二个参数,意味着加载的界面将被设置为当前类实例(self)的属性。这意味着你可以通过self.ui访问界面中的各个组件,比如按钮、文本框等。
python 复制代码
class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.ui = uic.loadUi("./计算器.ui", self)  # 注意这里的 self 参数

    def keyPressEvent(self, event):

        print("Key press event triggered")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MyWindow()
    w.show()  # 正确显示 MyWindow 实例
    app.exec_()  # 注意这里的下划线,虽然这不会影响功能,但它是标准的写法
相关推荐
Sirius.z几秒前
第J3周:DenseNet121算法详解
python
Bat U2 分钟前
JavaEE|多线程初阶(七)
java·开发语言
谭欣辰12 分钟前
C++ 排列组合完整指南
开发语言·c++·算法
2301_7796224115 分钟前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_7662834427 分钟前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
foundbug9991 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
XDH_CS1 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql
小短腿的代码世界2 小时前
Qt实时盈亏计算深度解析:从持仓数据到动态盈亏展示
开发语言·qt
小康小小涵2 小时前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python