Python pyqtgraph船坞布局图

Python pyqtgraph船坞布局图,python,dock,pyqtgraph,Python,Dock,Pyqtgraph,有没有办法在pyqtgraph中锁定停靠点,以便用户无法移动它们 我正在使用一个小触摸屏来显示一个带有多个停靠点的pyqtgraph应用程序。用户很容易意外地移动一个船坞。当这种情况发生时,由于屏幕的大小,屏幕变得不可用。我想阻止用户移动码头 但是,用户仍然必须能够在停靠点之间进行选择(即,将它们视为选项卡小部件) 我只是想说清楚,我想防止一个码头被拆开,我想防止码头被运到一个新的位置 谢谢, Chris我通过重写Dock类的方法禁用了分离和拖动Dock的功能 拖动停靠将其移动到另一个位置。因此

有没有办法在pyqtgraph中锁定停靠点,以便用户无法移动它们

我正在使用一个小触摸屏来显示一个带有多个停靠点的pyqtgraph应用程序。用户很容易意外地移动一个船坞。当这种情况发生时,由于屏幕的大小,屏幕变得不可用。我想阻止用户移动码头

但是,用户仍然必须能够在停靠点之间进行选择(即,将它们视为选项卡小部件)

我只是想说清楚,我想防止一个码头被拆开,我想防止码头被运到一个新的位置

谢谢,
Chris

我通过重写Dock类的方法禁用了分离和拖动Dock的功能

拖动停靠将其移动到另一个位置。因此,我用不做任何事情的方法(即no-op)覆盖了所有的“drag”事件处理程序

双击dock的标签将导致dock分离。因此,我用no-op覆盖了dock标签的双击事件处理程序

在代码中用MyDock替换Dock。更新:我添加了代码来覆盖DockArea的拖动方法,因为我仍然能够移动DockArea

代码如下:

##
# This class is used to eliminate a standard Dock class' ability to detach and
# move (i.e. dragging this Dock will have no effect)
#
class MyDock(Dock):
    def __init__(self, name, area=None, size=(10, 10), widget=None, hideTitle=False, autoOrientation=True):

        # Initialize the baseclass
        #
        Dock.__init__(self, name, area, size, widget, hideTitle, autoOrientation)

        # Override the label's double click event.  Normally double clicking
        # the dock's label will cause it to detach into it's own window.
        #
        self.label.mouseDoubleClickEvent=self.noopEvent

    def dragEventEnter(self, ev):
        pass

    def dragMoveEvent(self, ev):
        pass

    def dragLeaveEvent(self, ev):
        pass

    def dragDropEvent(self, ev):
        pass

    def noopEvent(self,ev):
        pass

class MyDockArea(DockArea):
    def dragEventEnter(self, ev):
        pass

    def dragMoveEvent(self, ev):
        pass

    def dragLeaveEvent(self, ev):
        pass

    def dragDropEvent(self, ev):
        pas