0

QKeyEvent.nativeModifiers() 是什么?文档没有说太多(https://doc.qt.io/qtforpython/PySide6/QtGui/QKeyEvent.html#PySide6.QtGui.PySide6.QtGui.QKeyEvent.nativeModifiers)。据我了解,通过在 QKeyEvent 对象上调用此方法返回的整数表示修饰键(Ctrl、Shift、Alt 等)的完整状态。

此外,我会假设这些整数和它们各自的修饰符状态之间的映射是系统的,那么有没有办法测试给定的修饰符状态是否包含特定的修饰符(例如,通过使用“&”运算符)?

重要的是,本机修饰符是否跨平台,以便 PC 上的 Left Ctrl 按键返回与 Mac 上的 Left Command 相同的整数(因为 Qt.Key_Control 对应于 MacOS 命令键)?

4

1 回答 1

1

顾名思义,原生修饰符在 mac 和 pc 上具有不同的值。在 windows 上,值是WindowsNativeModifiers的组合,在 macOS 上,它是NSEventModifierFlags的组合,两者都转换为Qt::KeyboardModifierswindows macOS),这在两个平台上都是相同的。

于 2021-04-30T19:35:24.220 回答