Qt:如何为 MAC 定义 Cmd+key 快捷键

Posted

技术标签:

【中文标题】Qt:如何为 MAC 定义 Cmd+key 快捷键【英文标题】:Qt: how to define Cmd+key shortcut for MAC 【发布时间】:2013-05-29 08:38:04 【问题描述】:

我对 Qt 完全陌生。

如何在 Mac 上的代码中定义Cmd + numeric key 键序列?

对于 Windows 我有

QKeySequence(QString("Ctrl+") + QString::number(number));

number 在哪里,比如说,2

MAC cmd 密钥应该与什么相同?

而且,Qt 是否有可能以某种方式确定我们是在 Mac 还是 Windows 上运行(以便我可以根据需要创建键序列)?

【问题讨论】:

【参考方案1】:

Qt::Modifier enum documentation中所述:

注意:在 Mac OS X 上,CTRL 值对应于 Macintosh 键盘,META 值对应于 Control 键

QKeySequence documentation 更详细:

注意:在 Mac OS X 上,对“Ctrl”、Qt::CTRL、Qt::Control 和 Qt::ControlModifier 对应 Macintosh 上的 Command 键 键盘,以及对“Meta”、Qt::META、Qt::Meta 和 Qt::MetaModifier 对应于 Control 键。 Mac OS 上的开发人员 X 可以在所有平台上使用相同的快捷方式描述,并且 他们的应用程序将自动在 Mac OS X 上按预期运行。

因此,如果您只是在 Windows/Linux 上使用 Ctrl,在 MacOS 上使用 Cmd,则无需更改任何内容,只需使用 Windows 序列即可。

【讨论】:

你的意思是它应该像 Mac 上的 QKeySequence(QString("Cmd+1")) ?抱歉,我没有 Mac 可以检查。 不,“Ctrl”标记映射到Qt::CTRL,在Mac上被视为“Cmd”键,因此无论平台如何都能正确读取QKeySequence(QString("Ctrl+1"))

以上是关于Qt:如何为 MAC 定义 Cmd+key 快捷键的主要内容,如果未能解决你的问题,请参考以下文章

如何为Mac任意命令设置快捷键?

如何为 Qt 创建自定义小部件

Qt:如何为两个显示器使用 AA_UseHighDpiPixmaps

如何为 Qt 5.5 + QtQuick 2.5 定义 Qml 组件文件解析器?

QT Creator:如何为自定义小部件生成库和测试可执行文件

如何为自定义 nemo 操作添加键盘快捷键?