自定義了一個QDialog窗口,需要接收快捷鍵enter確認;一開始發現無法接收enter健,其他健可以;
1. QDialog 的構造函數設置爲setFocusPolicy(Qt::StrongFocus);
2.將Dialog上的QPushButton的focusPolicy設置爲Qt::NoFocus。
3.設置按鍵響應函數,包含頭文件
#include <QKeyEvent>
void ConfirmDialog::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Escape) { ui.pushButtonCancel->clicked(); } else if (event->key() == Qt::Key_Return) { ui.pushButtonConfirm->clicked(); } }
大鍵盤上的回車鍵是Qt::Key_Return;
小鍵盤上的回車鍵是Qt::Key_Enter;