有没有一种优雅的方法来正确管理 qt 中的大量键盘快捷键?

Is there an elegant way to manage properly a large collection of keyboard shortcuts in qt?

我正在通过处理给定的示例来学习 qt。我已经开始玩键盘快捷键了。为了分配它们,我使用了非常方便的 QtDesigner,例如使用 "return" 键单击研究 QPushButton。

这里我的主要class是一个叫TextFinder的Widget,它有一个指针指向Ui::TextFinderclass,它是从QtCreator自动构建的,这是封装的标准程序用户界面属性和方法。

通过使用 QtDesigner 分配快捷方式,在 Ui::TextFinder class 中生成以下行:

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

其中 findButton 是我的 QPushButton 的别名。到目前为止一切顺利。

假设现在在一个大程序中,我想实现很多快捷方式来触发多种信号,我使用QtDesigner来实现,它会生成这些行代码,可能在不同的头文件中对应不同的小部件.管理它们和对程序的 "shortcuts state" 有全局视野将很快变得困难。

在一个地方管理程序中的所有快捷方式的好方法是什么?是否可以制作一些配置文件来执行此任务?

通常在这种情况下,您可以从快捷方式向上一级并查看 A​​ctionsQAction 有点全局(例如在 QMainWindow 级别)用户可以通过各种方式触发(或切换)某些内容的工具。要说出最突出的,

  • 菜单项
  • (工具栏)按钮
  • 快捷方式

您可以通过 Qt Designer(如果您有 QMainWindow)或在代码的中央位置管理您的操作。请注意,该操作不仅包含快捷方式,还包含标题、图标等。 您可以在 Qt Designer 中通过将操作拖到工具栏上来安排工具栏,但您也可以手动将操作分配给代码中的任何按钮。