QT - Esc не должен закрывать диалоговое окно

Как сделать клавишу Esc для уменьшения диалогового окна? По умолчанию это закрывается. Если я обрабатываю KeyEvent или существует лучший путь?

16
задан Bugfinger 12 June 2016 в 22:05
поделиться

2 ответа

Думаю, вы можете использовать это:

MyDialog::keyPressEvent(QKeyEvent *e) {
    if(e->key() != Qt::Key_Escape)
        QDialog::keyPressEvent(e);
    else {/* minimize */}
}

Также посмотрите документы Events and Event Filters docs.

17
ответ дан 30 November 2019 в 16:49
поделиться

Я думаю, что для этого вам придется избегать наследования от QDialog. В документации к QDialog говорится:

Escape Key

Если пользователь нажимает клавишу Esc в диалоге, будет вызван QDialog::reject(). вызывается. Это приведет к тому, что окно закрывается: Событие закрытия не может быть проигнорировано.

1
ответ дан 30 November 2019 в 16:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: