PYQT4 中的捕获键
Capture Keys in PYQT4
我正在尝试捕获程序中按下的所有键
def keyPressEvent(self, event):
event = event.key()
if (event == QtCore.Qt.Key_Q):
print ('Q!.')
当我试图在我的 window 中捕获按键时,该功能工作正常。 (在这种情况下 Q_Key)
但是如果在文本小部件(例如:QListView、QlistWidget、QLineEdit 等等)中按下该键,则它不起作用。该函数不打印任何内容。我做错了什么......
我该怎么做才能解决它?
谢谢,对不起我的英语!
您需要在应用程序上安装事件过滤器以获取所有按键事件:
class Window(QtGui.QWidget):
def __init__(self):
...
QtGui.qApp.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.KeyPress:
print('KeyPress: %s [%r]' % (event.key(), source))
return super(Window, self).eventFilter(source, event)
我正在尝试捕获程序中按下的所有键
def keyPressEvent(self, event):
event = event.key()
if (event == QtCore.Qt.Key_Q):
print ('Q!.')
当我试图在我的 window 中捕获按键时,该功能工作正常。 (在这种情况下 Q_Key)
但是如果在文本小部件(例如:QListView、QlistWidget、QLineEdit 等等)中按下该键,则它不起作用。该函数不打印任何内容。我做错了什么...... 我该怎么做才能解决它?
谢谢,对不起我的英语!
您需要在应用程序上安装事件过滤器以获取所有按键事件:
class Window(QtGui.QWidget):
def __init__(self):
...
QtGui.qApp.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.KeyPress:
print('KeyPress: %s [%r]' % (event.key(), source))
return super(Window, self).eventFilter(source, event)