2010-08-16 65 views
170

我正在使用Qt設計器。使用Qt設計器自動擴展布局

我想創建一個QVBoxLayout,它將自動擴展以填充整個窗口。

QVBoxLayout的佈局保持不變。

如何使QVBoxLayout擴展並通過設計器填充整個窗口?

+0

如果你只是想在Qt Designer中USET佈局,請裁判吼叫提示:http://stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow – 2013-07-08 05:23:27

回答

279

創建後您在Qt設計QVBoxLayout,在你的widget /對話框/窗口的背景(不是QVBoxLayout,但父控件)右鍵單擊並選擇佈局 - 從>奠定了在網格上下文菜單的底部。 QVBoxLayout現在應該拉伸以適應窗口,並在整個窗口調整大小時自動調整大小。

+0

是的,我明白了。但這是一個錯誤的默認值。將'QVBoxLayout'拖到主窗口小部件時會發生什麼? – 2010-08-16 15:02:54

+4

謝謝,我一直在尋找解決這個問題的方法。 – 2010-09-17 11:43:02

+25

其實,你根本不需要創建網格佈局。不要自己創建一個QVBoxLayout,取消選擇所有項目並單擊小部件的背景。然後選擇佈局 - >垂直佈局。 – 2011-01-12 20:57:58

0

一旦你添加了至少有一個小部件的佈局,選擇你的窗口,然後點擊QtDesigner的「更新」按鈕。界面將以最優化的尺寸調整大小,並且您的佈局將適合整個窗口。然後,在調整窗口大小時,佈局將以相同的方式調整大小。

+0

我彪,當用戶調整整個窗口的大小,垂直佈局(以及其內容)將伸展以適應它。我不在乎它在Qt Designer中的外觀。 – 2010-08-16 13:37:44

2

我試圖找到一個「適合屏幕」屬性,但沒有這樣的。

但是,將小部件的「maximumSize」設置爲「某個大數字」(如2000 x 2000)將自動使小部件適合父小部件空間。

+1

當您嘗試接受的解決方案時會發生什麼? – 2011-01-10 06:01:00

+4

在配備Retina Display(2880x1800)的MacBook Pro上使用此技術會發生什麼? – 2012-11-20 04:57:21

+1

只需將其設置爲它將接受的最大數量(哪個Designer顯示給我的是16777215),並且它應該適用於任何顯示器大小。 – andreb 2013-08-17 21:17:15

-3

將控件/小部件的Horizo​​ntalPolicy設置爲「首選」

9

根據documentation,需要有頂層佈局集。

頂層佈局對於確保您的小部件在其窗口大小調整時將正確調整大小是必需的。要檢查您是否設置了頂層佈局,請預覽您的窗口小部件並嘗試通過拖動窗口大小來調整窗口大小。

您可以通過清除選擇並右鍵單擊表單本身並選擇上下文菜單中可用的佈局之一來設置其中一個。

Qt layouts