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);
    }
}
posted @ 2020-01-02 10:26  Raina_R  阅读(5582)  评论(1编辑  收藏  举报