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