检查按键是否为PyQt中的字母或空格

时间:2019-06-18 11:04:14

标签: python pyqt

我已经实现了一个自定义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,
    ....
    ....

以此类推。

我将如何遍历这些值?我将如何访问被按下的实际字符?我想创建一个按键字符串,只要它们是字母即可。

3 个答案:

答案 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