I have a simple form with some combos, labels, buttons and a QTextEdit.
I try to catch the enter or return key with keyPressEvent, but for some reason I'm not able to. The ESC key however, that I also use, is recognized.
Here's a piece of the code:
def keyPressEvent(self, e):
print e.key()
if e.key() == QtCore.Qt.Key_Return:
self.created.setText('return')
if e.key() == QtCore.Qt.Key_Enter:
self.created.setText('enter')
if e.key() == QtCore.Qt.Key_Escape:
self.cmbEdit = not(self.cmbEdit)
if self.cmbEdit:
etc...
Am I missing something?
It's not completely clear from your code, but it looks like you may have reimplemented
keyPressEvent
for the form, when you needed to do it for the text-edit itself.One way to fix that is to use an event filter, which can sometimes be more flexible as it avoids having to sub-class the widget(s) you're interested in. The demo script below shows the basics of how to use it. The important thing to note is that the the event-filter should return
True
to stop any further handling, returnFalse
to pass the event on for further handling, or otherwise just drop through to the base-class event-filter.