[英]How to compose a nested function g=fn(…(f3(f2(f1()))…) from a list of functions [f1, f2, f3,…fn]
[英]how can i get the alphabet value like F1 or F2 from keyPressEvent?
我想打印像 ['a', 'b', ... , 'f11', 'f12'] 這樣的鍵值
def keyPressEvent(self,e):
print(e.key())
但是當我按下 f1 時,function 鍵,然后打印值 16777264。我怎樣才能將 16777264 轉換為 f1?
key()
返回一個可以使用QtCore.Qt.Key
枚舉匹配的 int。
Qt 提供高達 F35 的 F 鍵標識符,因此您可以構建一個簡單的 map 並在鍵事件中檢查它。
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)
將其與 QtCore.Qt.Key 枚舉進行比較。 見這里。
if e.key() == QtCore.Qt.Key_F1:
此外,如果您想要任意按鍵的名稱,您可以使用以下命令:
from PyQt5.QtCore import Qt
keys = {}
for key, value in vars(Qt).items():
if isinstance(value, Qt.Key):
keys[value] = key
keys[16777264]
>>> 'Key_F1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.