我和Qt设计师有一个奇怪的问题。我有以下刷新操作的快捷方式: F5 , Ctrl + R
这个想法是在Macintosh上, Ctrl + R 映射到 Command + R 这更直观在Windows上, F5 完成这项工作。
问题是只有第一个快捷方式似乎处于活动状态。有没有办法让我更改动作的快捷方式,以便我们在Mac上有 Ctrl + R ,在其他地方有 F5 ?我知道我可以在代码中执行此操作,但我宁愿在设计器中执行此操作。
答案 0 :(得分:0)
这可以通过几种方式解决。首先,您可以使用QKeySequence并指定QKeySequence::Refresh
作为快捷方式。另一种方法是创建QList
,其中包含使用Qt::Key enum创建的2个QKeySequence
元素:Qt::Key_F5
和Qt::Key_Control
+ Qt::Key_R
(在Mac OS X上将分配命令按钮,其他 Ctrl )。然后将此列表传递给QActionsetShortcuts()。在此之后,在Max OS X F5 和 Command + R 将触发刷新操作,并在其他系统上 F5 和 Ctrl + R 。最后,如果你想在Mac OS X上设置 Command + R 而不用 F5 而不用 Ctrl设置 F5 + R 在其他人身上,你应该做条件编译,即:
#ifdef Q_WS_MAC
//set Qt::Key_Control + Qt::Key_R
#else
//set Qt::Key_F5
更多关于操作系统的定义,您将找到here