Как напечатать текст ярлыка в строке меню без установки ярлыка? - PullRequest
1 голос
/ 18 апреля 2020

enter image description here

Вот так, я хочу напечатать текст ярлыка.

Но я не хочу использовать такой код:

this->newAction->setShortcut(QKeySequence::New);

Поскольку я обрабатываю ярлыки с помощью моих KeyAction классов.

Если я использую setShortcut(), мои классы KeyAction игнорируются.

Есть ли какое-либо решение для печати только ярлыка текста ?

Или я должен установить текст, например "새 파일 (& N) \ t \ tCtrl + N"?

Я хочу напечатать текст выровненным.

Спасибо за ваше помощь.

1 Ответ

0 голосов
/ 20 апреля 2020

Ответ основан на комментариях TFry .

Установите ярлык как обычно (используя QAction::setShortcut). Чтобы предотвратить запуск действия и остановить распространение события при нажатии на ярлык, вы должны принять все ShortcutOverride события в окне верхнего уровня (то есть, обычно MainWindow):

MainWindow::MainWindow(...)
{
   installEventFilter(this);
}

bool MainWindow::eventFilter(QObject* o, QEvent* e)
{
  if (o == this && e->type() == QEvent::ShortcutOverride) {
    e->accept();
  }
  return QMainWindow::eventFilter(o, e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...