Проверял, работает, Qt 4
UPDATE. Ааа, так вы у самого комбобокса пытаетесь отследить нажатие
Реализовал как у вас: странно на KeyPress не ловит, а на KeyRelease ловит... Как вариант, используйте keyPressEvent
Python
class ComboBox(QComboBox):
def __init__(self):
super().__init__()
def event(self, e):
# print(e, e.type())
if e.type() == QEvent.KeyRelease:
print('ComboBox', e.key(), e.key() == Qt.Key_Tab)
return True
return super().event(e)
class Widget(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.setLayout(layout)
self.cb = ComboBox()
self.cb.addItem('1')
self.cb.addItem('2')
self.cb.addItem('3')
self.cb.addItem('4')
layout.addWidget(self.cb)
self.cb.installEventFilter(self)
def eventFilter(self, obj, event):
if obj is self.cb and event.type() == QEvent.KeyPress:
print(event.key(), event.key() == Qt.Key_Tab)
return True
return super().eventFilter(obj, event)