2015-10-27 86 views
2

我有QDockWidget的問題。我使用的是Qt Designer,我想用一個dock-widgets構建一個應用程序,並且在屬性上面有一個小欄。問題是,如果沒有主QWidget,我無法構建應用程序(我的意思是只有 QDockWidgets)。沒有中央部件的QDockWidget佈局

這裏是我的截圖:

qtdesigner

註釋1) - 這是我無法刪除的空間。當我從xml中刪除它時,Qt Designer崩潰。如果它不可移動,我怎樣才能將左側的QDockWidget和右側的QDockWidget設置爲整個窗口寬度的一半?

+0

你可能有一個未使用的行中的centralWidget您的網格佈局。清除佈局並重新設置。這次確保你沒有空行。如果我不得不猜測,你之前直接在mainwindow上有所有的按鈕,留下7行。然後你將它們移到自己的小部件中?留下很多未使用的行,由底部的按鈕覆蓋... –

+0

我編輯了我的帖子和附加的屏幕鏈接以獲得更好的質量。整個屏幕是3試圖建立這個東西。並且不,按鈕僅添加到QDocWidget中。有3個按鈕來檢查我可以展開多少QDocWidget。 QWidget - 負責這個空間是由Designer自動添加的。我已清理CentralWidget - 現在有紅圈。結束它並沒有隱藏,並且在調整大小後它正在擴展,但QDocWidget保持不變。我想反對:) –

+0

即使我試圖擁有3個小工具。 Top,Left和Bottom與QWidget有空間。即使我設置了1x1像素寬度,它也會在Designer中展開! :) –

回答

1

這不能從Qt Designer中完成。但是,有一個Qt Forum Thread這表明可能有一種方法可以以編程方式執行它。

首先,您必須在Qt Designer中將主窗口dockNestingEnabled屬性設置爲true。然後,在創建UI之後,以編程方式刪除中央小部件,然後刪除,重新添加並重新顯示所有的小部件。

當我測試這個時,我發現我需要用單次計時器顯示dock-widgets,否則我無法垂直調整它們。然而,即使有那麼一點點黑客,我仍然發現調整大小並不總是正常工作。所以我不相信Qt真的支持這種使用dock-widgets的方式。

+0

我會盡力寫我的觀察:)謝謝 –

1

可以使用setCentralWidget(0);

0

創造Qt設計GUI和翻譯它ui_file後刪除centralWidget。添加一行在您的通話__init___腳本:

self.ui.centralwidget.hide() 

您可能需要檢查,如果你的中央物件被稱爲如上