class CustomQMainWindow(QtWidgets.QMainWindow):
def __init__(self,*args,**kwargs):
super().__init__(*args, **kwargs)
self.timer = QtCore.QTimer()
self.timer.timeout.connect(lambda: self.install_filter())
self.timer.setSingleShot(True)
self.timer.start(2000)
def install_filter(self):
# space as shortcut for hold (microphone)
self.installEventFilter(self)
def eventFilter(self, obj, event):
try:
if event.type() == QtCore.QEvent.KeyPress:
if event.key() == QtCore.Qt.Key_Space:
print("Space pressed")
return True
elif event.type() == QtCore.QEvent.KeyRelease:
if event.key() == QtCore.Qt.Key_Space:
print("Space released")
return True
return super(CustomQMainWindow, self).eventFilter(obj, event)
except:
print(traceback.format_exc())
I have made this code but the keyPress event is not fired. It just holds one focus QPushButton.
What can i do to fire the keyPress/keyRelease events even QMainWindow has it's focus to one child widget?