Есть ли в qt элегантный способ правильно управлять большой коллекцией сочетаний клавиш? - PullRequest
0 голосов
/ 09 января 2019

Я изучаю qt, работая над приведенными примерами. Я начал немного играть с сочетаниями клавиш. Чтобы назначить их, я использовал QtDesigner, который очень удобен, например, с помощью клавиши «return», чтобы щелкнуть QPushButton исследования.

Здесь моим основным классом является виджет с именем TextFinder, у которого есть указатель на класс Ui :: TextFinder, который автоматически создается из QtCreator, который является стандартной процедурой для инкапсуляции атрибутов и методов пользовательского интерфейса.

При назначении ярлыка с помощью QtDesigner в классе Ui :: TextFinder создаются следующие строки:

#ifndef QT_NO_SHORTCUT
    findButton->setShortcut(QApplication::translate("TextFinder", "Return", nullptr));
#endif // QT_NO_SHORTCUT

где findButton - псевдоним для моего QPushButton. Пока все хорошо.

Предположим, что сейчас в большой программе я хочу реализовать много ярлыков для запуска сигналов различного типа, и для этого я использую QtDesigner, он сгенерирует эти строки кода, возможно, в разных заголовочных файлах, соответствующих разным виджетам. Управлять ими быстро станет трудно, и они будут иметь общее представление о «состоянии ярлыков» программы.

Каким будет хороший способ управления всеми ярлыками в программе в одном месте? Можно ли сделать какой-нибудь конфигурационный файл для выполнения этой задачи?

1 Ответ

0 голосов
/ 09 января 2019

Обычно в этом случае вы переходите на один уровень вверх от ярлыков и смотрите на Действия . QAction является несколько глобальным (например, на уровне QMainWindow) средством для чего-то, что пользователь может запускать (или переключать) различными способами. Чтобы назвать самых выдающихся,

  • Пункты меню
  • (Панель инструментов) кнопки
  • Горячие клавиши

Вы можете управлять своими действиями через Qt Designer (если у вас есть QMainWindow) или в центральном месте вашего кода. Обратите внимание, что действие включает в себя не только ярлык, но также заголовок, значок и т. Д. Вы можете расположить панель инструментов в Qt Designer, перетаскивая на нее действия, но вы также можете вручную назначить действие любой кнопке в коде.

...