首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PyQt5中从'a‘到Qt.Key_A

在PyQt5中从'a‘到Qt.Key_A
EN

Stack Overflow用户
提问于 2018-06-01 22:40:40
回答 2查看 400关注 0票数 1

我确信这是最基本的,但我已经搜索过了,结果却空手而归。

我使用的是Python3.6.4和PyQt5

我希望将一些自定义操作键存储在一个配置文件中(通过configparser),然后检索它们并响应该按键事件。

所以基本上我在PyQt5中寻找一个与chr(Qt.Key_A)相反的函数--从一个字符返回一个Qt.Key_。

这一次我情不自禁地用谷歌搜索,而且PyQt5很难读懂。我想知道有没有人能给我指个方向。

我可以使用字典,但我确信一定有一个函数可以做到这一点--我只是找不到它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-07 07:34:43

我的解决方案是使用ord()将键存储为ASCII码,因为它们可以直接与Qt.Key_对象进行比较:

代码语言:javascript
复制
from PyQt5.QtCore import Qt
ord('A') == Qt.Key_A
Out[2]: True
票数 1
EN

Stack Overflow用户

发布于 2020-06-26 17:40:29

如果我们只讨论字母数字键,getattr(Qt, f"Key_{key.upper()}"应该可以工作。

代码语言:javascript
复制
from PyQt5.QtCore import Qt

def string_to_key_converter(s):
    attribute = f"Key_{s.upper()}"
    if hasattr(Qt, attribute):
        return getattr(Qt, attribute)
    else:
        raise ValueError(f"Key {s} is invalid or unsupported.")

> string_to_key_converter("a") is Qt.Key_A
>>> True
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50645914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档