问题描述
通过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_()  # 注意这里的下划线,虽然这不会影响功能,但它是标准的写法