问题描述
通过load ui 文件加载程序时,keyPressEvent键盘按压事件无响应
原因
主要是由于事件处理的方式和窗口的显示方式不正确所导致的。
解决代码
- self:这里的self作为loadUi函数的第二个参数,意味着加载的界面将被设置为当前类实例(self)的属性。这意味着你可以通过self.ui访问界面中的各个组件,比如按钮、文本框等。
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_() # 注意这里的下划线,虽然这不会影响功能,但它是标准的写法