Qt按回車鍵和Esc鍵窗口退出問題


Enter退出問題

我新建了一個QDialog窗口,里面有多個QLabel和QSpinBox和一個Exit退出按鈕,但是編輯完QSpinBox按回車后窗口就馬上退出了,后來發現是按鈕默認設置成了StrongFocus的原因。

解決方法:
設置窗口中的退出按鈕的focusPolicy屬性為NoFocus

Esc退出問題

需要重寫QDialog的keyPressEvent():

#include <QKeyEvent>

void MyDialog::keyPressEvent(QKeyEvent *event)
{
    switch (event->key())
    {
    case Qt::Key_Escape:  // 按下的為Esc鍵
        break;  // 不做反應直接退出
    default:
        QDialog::keyPressEvent(event);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM