要在 PyQt5 中为 QPushButton 添加键盘事件响应,您需要重新实现 keyPressEvent
方法。以下是一个示例:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton class CustomButton(QPushButton): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def keyPressEvent(self, event): print("Key pressed: ", event.key()) # 在这里添加您想要执行的操作 super().keyPressEvent(event) class MainWindow(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): self.setGeometry(300, 300, 400, 200) layout = QVBoxLayout() button1 = CustomButton("Button 1") button2 = CustomButton("Button 2") layout.addWidget(button1) layout.addWidget(button2) self.setLayout(layout) if __name__ == "__main__": app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_())
在这个示例中,我们创建了一个名为 CustomButton
的自定义按钮类,该类继承自 QPushButton
。我们重写了 keyPressEvent
方法,当用户按下按钮时,将打印出按下的键。您可以根据需要在此方法中添加其他操作。
然后,我们创建了一个包含两个自定义按钮的主窗口。当您运行此程序并按下按钮时,将看到控制台输出按下的键。