2010-06-09 26 views
4

我想要一個Qt窗口,在右邊提供下面的停靠小工具安排。當屏幕截圖顯示使用代碼時,如何定位QDockWidgets?

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

Qt的允許你提供的參數的QMainWindowaddDockWidget方法來指定的位置(頂部,底部,左或右),但顯然不是如何放置在相同側的兩個QDockWidgets將安排。

以下是添加停靠小工具的代碼。這種使用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) 

當這個代碼是用來兩者添加到右側,一個高於其他的,不喜歡的屏幕截圖我做了。我做這個鏡頭的方式是在開始程序後用鼠標拖動它們,但我需要它以這種方式開始。

回答

7

您可以使用QMainWindow::splitDockWidget

從文檔:

拆分由第一碼頭插件覆蓋成兩個部分的空間中,移動第一碼頭插件到第一部分,並且移動所述第二基座構件到第二部分。

方向指定了空間的分割方式:Qt :: Horizo​​ntal split將第二個Dock小部件放置在第一個小部件的右側; Qt :: Vertical split將第二個Dock小部件放置在第一個底下。

您必須首先將QMainWindow::dockNestingEnabled設置爲true(但我想您已經這樣做了)。

+0

這可能會工作,但我沒有嘗試過。我敢打賭,這是使用鼠標重新定位碼頭的基礎代碼。 – Nathan 2010-06-10 13:06:34

相關問題