Мне тоже нужно заняться этим, чтобы ваш пост был весьма полезным.
Когда я сталкивался с такими проблемами, как это раньше, я решил их, используя installEventFilter на всех виджетах (тот же фильтр), а не на подклассах.Затем вы можете получать и принимать события, чтобы блокировать их от Maya (или пропустить их, например, пробел для маркировки меню на вашем графическом интерфейсе и т. Д.)
Вот то, что я использую, чтобы Maya имела пробел (отмечаяменю), Ctrl + A (переключатель редактора атрибутов) и Ctrl + Z (отменить).Это будет добавлено к вашему фильтру событий:
if event.type() == QEvent.KeyPress:
key = event.key()
mod = event.modifiers()
if ((ctrla and key == Qt.Key_A and mod == Qt.ControlModifier) or # CTRL+A
(ctrlz and key == Qt.Key_Z and mod == Qt.ControlModifier) or # CTRL+Z
(space and key == Qt.Key_Space)): # Space Bar
event.ignore()
return True
return False
Вам просто нужно сделать обратное и использовать event.accept()
и return False