我确信这是最基本的,但我已经搜索过了,结果却空手而归。
我使用的是Python3.6.4和PyQt5
。
我希望将一些自定义操作键存储在一个配置文件中(通过configparser
),然后检索它们并响应该按键事件。
所以基本上我在PyQt5中寻找一个与chr(Qt.Key_A)
相反的函数--从一个字符返回一个Qt.Key_。
这一次我情不自禁地用谷歌搜索,而且PyQt5很难读懂。我想知道有没有人能给我指个方向。
我可以使用字典,但我确信一定有一个函数可以做到这一点--我只是找不到它。
发布于 2018-06-07 07:34:43
我的解决方案是使用ord()
将键存储为ASCII码,因为它们可以直接与Qt.Key_
对象进行比较:
from PyQt5.QtCore import Qt
ord('A') == Qt.Key_A
Out[2]: True
发布于 2020-06-26 17:40:29
如果我们只讨论字母数字键,getattr(Qt, f"Key_{key.upper()}"
应该可以工作。
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
https://stackoverflow.com/questions/50645914
复制相似问题