我已经实现了一个自定义QTextEdit
类,在其中我要覆盖keyPressEvent
方法。
我要检查按下的键是否在以下位置:
1.大写字母
2.小写字母
3.空间
如果我的函数声明是这样的:
def keyPressEvent(self, event):
我可以做类似的事情:
if event.key() in (
QtCore.Qt.Key_A,
QtCore.Qt.Key_B,
QtCore.Qt.Key_C,
QtCore.Qt.Key_D,
....
....
以此类推。
我将如何遍历这些值?我将如何访问被按下的实际字符?我想创建一个按键字符串,只要它们是字母即可。
答案 0 :(得分:3)
签出build in string methods (eg isalpha())和QKeyEvent.text()
s = event.text()
if s == ' ':
print(s+' is space')
elif s.isalpha():
if s.isupper():
print(s+' is upper')
else:
print(s+' is lower')
else:
print(s+' is something else')
答案 1 :(得分:0)
找到了答案。 event.key()
只是一个十六进制数字。
答案 2 :(得分:0)
好吧,@ Jonas的回答很好,根据您要执行的操作,您不必遍历列表,您可以简单地检查它是否是 IN 列表; >
error