要在 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
方法,當用戶按下按鈕時,將打印出按下的鍵。您可以根據需要在此方法中添加其他操作。
然后,我們創建了一個包含兩個自定義按鈕的主窗口。當您運行此程序并按下按鈕時,將看到控制臺輸出按下的鍵。