2010-08-31 138 views
10

我有一個窗口,其中包含一個QScrollArea及其中的一些小部件。Qt:如何調整窗口的大小以適應其新內容

到現在爲止,我在窗口的構造函數中創建了QScrollArea及其子窗口小部件,然後我使用resize(400, sizeHint().height())來垂直調整窗口大小以適合其內容。到現在爲止還挺好。

現在,我在運行時添加或刪除QScrollArea中的小部件。在添加或刪除小部件之後,我應該做些什麼來使窗口垂直適合其內容?我應該撥打adjustSize()嗎? resize(sizeHint())?是否應該先致電layout->activate()updateGeometry()?在這種情況下,哪些規模政策確實重要?窗口或滾動區域,還是兩者的?我試圖將它們全部設置爲Expanding

我在Windows上使用Qt 4.6。

+0

你想QScrollArea沒有滾動條? – 2010-08-31 23:03:46

+0

當然,現在的想法是擺脫垂直滾動條。下一步將允許它僅在QScrollArea內容的總高度太大或者用戶調整窗口大小時出現。 – 2010-09-01 07:38:26

回答

9

在窗口小部件被添加到滾動區域後,似乎調用resize(sizeHint())(沒有任何其他的魔法)實際上是這樣做的。不知何故第一次錯過了。

+1

我需要它進行垂直調整,並且出來了:'QSize s = sizeHint(); s.setWidth(寬度());調整大小;' – Notinlist 2014-05-11 13:24:00

+0

也許這會幫助其他人發現這個問題,但有我的問題,而不是。該對話框實際上是爲內容調整大小,但由於QT設計器中窗口的大小,它在底部被切斷。調整QT設計器中的窗口大小,以便在底部留出更多空間爲我解決問題 – slf 2017-06-06 18:57:56

相關問題