python - 如何从 keyPressEvent 中获取 F1 或 F2 等字母值?
问题描述
我想打印像 ['a', 'b', ... , 'f11', 'f12'] 这样的键值
def keyPressEvent(self,e):
print(e.key())
但是当我按下功能键 f1 时,它会打印值 16777264。如何将 16777264 转换为 f1?
解决方案
key()
返回一个可以使用QtCore.Qt.Key
枚举匹配的 int。
Qt 提供了 F 到 F35 的键标识符,因此您可以构建一个简单的映射并在键事件中检查它。
class FKeyTest(QtWidgets.QWidget):
fKeys = {}
for f in range(1, 36):
fKeys[getattr(QtCore.Qt, 'Key_F{}'.format(f))] = 'F{}'.format(f)
def keyPressEvent(self, event):
key = self.fKeys.get(event.key())
if key:
print(key)
推荐阅读
- java - 如何通过引用传递不同类型的列表结束接收作为参数C#的通用列表
- android - 如何在flutter android插件包中处理android生命周期
- sql - 更新另一列时,使用列名作为 PL/SQL 关联数组的键
- python - 为几个组件更新掩码的填充
- java - 尝试将带有@JsonProperty 注释的实体发布到在@RequestBody 上用@Valid 注释的端点时控制器测试失败
- android - 无法在 Android Auto Media App 上使用语音命令
- swift - 在 Swift 中创建类型属性有什么用?
- angular - MatSnackBar panelClass 不读取样式类
- c++ - 将 arma::cube 子视图转换为 NumericVector 以使用糖
- angular - 角度数据网格(ag-grid)侧边栏不起作用