Как сфокусировать menuBar () с помощью Qt

У меня есть рабочее приложение. Я добавил menuBar () в главное окно с некоторыми меню. Затем я спрятал его, чтобы освободить место на экране. Я написал код ниже, так что когда пользователь нажимает клавишу ALT, строка меню появляется, если она скрыта, и скрывается, если она отображается.

void MainWindow::keyPressEvent( QKeyEvent *k ) {
    if(k->modifiers() & Qt::AltModifier) {
        menuBar()->setHidden(!menuBar()->isHidden());
        if(menuBar()->hasFocus()) {
            QMessageBox::information(this, "Info", "Focus !");
        }
    }
}

Как вы можете видеть, я также добавил QMessageBox, чтобы увидеть, когда фокус находится на панели меню. И эта коробка появляется только в половине случаев. Это выглядит так:

Приложение запущено, меню скрытоЯ нажимаю ALT, отображается меню, нет окна сообщения, нет фокусаЯ нажимаю ALT, меню скрытоЯ нажимаю ALT, отображается меню, окно сообщения, фокусЯ нажимаю ALT, меню скрытоЯ нажимаю ALT, отображается меню, нет окна сообщения, нет фокусаЯ нажимаю ALT, меню скрытоЯ нажимаю ALT, отображается меню, окно сообщения, фокуси т.п.

Как убедиться, что при отображении строки меню она всегда имеет фокус?

Ответы на вопрос(2)

Ваш ответ на вопрос