Mac上的QTest::sendKeyEvent带有真实的(本地)Ctrl修饰符



QTest::sendKeyEvent(...Qt::ControlModifier)导致在Mac上发送命令键(反之亦然,Mac上的所有qkeyeevent都有Command pressed报告Qt::ControlModifier)。我需要做什么才能实现真正的Ctrl键发送?

存在两种解决方案:

  • 禁用映射转换:QCoreApplication::setAttribute(Qt::AA_MacDontSwapCtrlAndMeta)
  • 使用Qt::MetaModifier(mac上的Control键默认映射为Qt::MetaModifier)

正如文档中提到的,这种映射通常是macOS用户所期望的,因为快捷键通常使用Command键而不是Control键(在其他平台上使用)。

引用:

  • https://doc.qt.io/qt-6/qt.html ApplicationAttribute-enum

最新更新