Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何使用代码定位屏幕截图所示的QDockWidgets?_User Interface_Qt_Pyqt4_Dockable - Fatal编程技术网

User interface 如何使用代码定位屏幕截图所示的QDockWidgets?

User interface 如何使用代码定位屏幕截图所示的QDockWidgets?,user-interface,qt,pyqt4,dockable,User Interface,Qt,Pyqt4,Dockable,我想要一个Qt窗口,在右边显示以下dock窗口小部件的排列 Qt允许您为QMainWindow的addDockWidget方法提供一个参数,以指定位置(顶部、底部、左侧或右侧),但显然不是指定放置在同一侧的两个qDockWidget的排列方式 下面是添加dock小部件的代码。这将使用PyQt4,但对于使用C的Qt应该是相同的++ self.memUseGraph = mem_use_widget(self) self.memUseDock = QDockWidget("Memory Usage

我想要一个Qt窗口,在右边显示以下dock窗口小部件的排列

Qt允许您为
QMainWindow
addDockWidget
方法提供一个参数,以指定位置(顶部、底部、左侧或右侧),但显然不是指定放置在同一侧的两个
qDockWidget
的排列方式

下面是添加dock小部件的代码。这将使用PyQt4,但对于使用C的Qt应该是相同的++

self.memUseGraph = mem_use_widget(self)
self.memUseDock = QDockWidget("Memory Usage")
self.memUseDock.setObjectName("Memory Usage")
self.memUseDock.setWidget(self.memUseGraph)
self.addDockWidget(Qt.DockWidgetArea(Qt.RightDockWidgetArea),self.memUseDock)

self.diskUsageGraph = disk_usage_widget(self)
self.diskUsageDock = QDockWidget("Disk Usage")
self.diskUsageDock.setObjectName("Disk Usage")
self.diskUsageDock.setWidget(self.diskUsageGraph)
self.addDockWidget(Qt.DockWidgetArea(Qt.RightDockWidgetArea),self.diskUsageDock)

当使用此代码将它们都添加到右侧时,一个在另一个之上,与我制作的屏幕截图不同。我拍摄的方式是在启动程序后用鼠标将它们拖到那里,但我需要它以这种方式启动。

我从未尝试过,但我认为您可以在将dock小部件添加到主窗口时设置其方向:

您可以使用

从文档中:

将第一个dock小部件覆盖的空间分成两部分,将第一个dock小部件移动到第一部分,并将第二个dock小部件移动到第二部分

方向指定了空间的划分方式:Qt::Horizontal split将第二个dock小部件放置在第一个dock小部件的右侧;垂直拆分将第二个dock小部件放置在第一个之下


您必须先设置为true(但我想您已经这样做了)。

这可能也会起作用,但我没有尝试过。我敢打赌,这是使用鼠标重新定位码头的基本代码。实际上,我在文档中读到了这一点,但直到我看到你的问题才意识到这是为什么。:)截图是布罗肯的,这伤害了问题的理解-可能会重播它