如何使用代码屏幕截图显示QDockWidgets的位置?

Nat*_*han 4 user-interface qt dockable pyqt4

我想要一个Qt窗口,在右边提供以下Dock功能部件的排列方式.

alt text http://img72.imageshack.us/img72/6180/docksonside.png

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

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

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)
Run Code Online (Sandbox Code Playgroud)

当这段代码用于将它们添加到右侧时,一个在另一个之上,而不像我制作的屏幕截图.我拍摄这个镜头的方法是在启动程序后用鼠标拖动它们,但我需要它以这种方式启动.

Job*_*Job 8

您可以使用QMainWindow :: splitDockWidget.

来自文档:

将第一个停靠窗口小部件覆盖的空间拆分为两部分,将第一个停靠窗口小部件移动到第一个部分,然后将第二个停靠窗口小部件移动到第二个部分.

方向指定空间的划分方式:Qt :: Horizo​​ntal拆分将第二个停靠小部件放在第一个小部件的右侧; Qt :: Vertical拆分将第二个停靠小部件置于第一个停靠点下方.

你必须首先将QMainWindow :: dockNestingEnabled设置为true(但我猜你已经这样做了).


Ste*_*Chu 6

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

void QMainWindow::addDockWidget ( Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation )