Pyqtgraph ParameterTree上的过滤事件(Strg + Z)

时间:2019-01-13 13:46:48

标签: python pyqt pyqt5 pyqtgraph

在我当前的应用程序中,我使用的是pyqtgraphs ParameterTree,它固有地为其元素实现了撤消功能。但是,这会干扰我的全局撤消堆栈,因此我想过滤Strg + Z事件。

ParameterTree继承自QTreeWidget,因此我尝试了一些方法。 首先,我尝试安装一个事件过滤器(但是不确定,如果我这样做是公平的,我不确定)。

class FooterWidget(ParameterTree):
""" Class for meta-properties of the map footer. """

def __init__(self, main_gui, parent=None):
    super().__init__(parent=parent)
    self.viewport().installEventFilter(self)
    ...
 def eventFilter(self, object, event):
    if isinstance(event, QKeyEvent):
        return(event.key() & Qt.Key_Control > 0)
    return False

但是,这不会阻止Ctrl + Z操作完成。同样,当我过滤任何keyPresses时(即eventFilter在任何情况下都返回True),我仍然看到一些可见的输入。这让我猜想,实际上实际事件是在实际事件过滤器之前传播到参数树的子级的。

keyPressEvent方法的重新实现也无济于事。 有什么方法可以干扰参数树的本地撤消,或者更确切地说,它的各项?

0 个答案:

没有答案