2013-07-19 104 views
3

我正在開發一個項目,我必須展示一個非常大的(垂直)主窗口小部件。 在我的GUI的最初版本中,它剛剛被添加爲QMainWindow的中央Widget,從而導致在小屏幕分辨率下Widget底部的控件無法訪問的問題。 爲了解決這個問題,我在主Widget周圍封裝了一個QScrollArea,但是現在主窗口總是比較小,即使不需要。如何使用QScrollArea設置QMainWindow的所需大小?

我需要改變什麼,所以主窗口(垂直)大小足以顯示所有內容,除非它對於屏幕分辨率來說太大了?此外,我不希望它被拉伸,所以總是使用整個垂直屏幕分辨率不是一個選項。理想情況下,尺寸應該固定爲內容所需的大小(不包含滾動區域),並且只在需要的地方較小。

重寫sizeHint方法並不僅造成了窗口小放大和設置最小高度使我回到起點,其中一些控制不小的決議課稅。

由於我是新來QT其實我的想法如何給Google的解決方案,因爲我可以發現,大部分的解決方案是關於一個窗口內調整組件大小,而不是窗口本身。

回答

-1

默認情況下,QScrollArea不會嘗試展開以適應其內容。爲了做到這一點,你需要重新實現QScrollArea的sizeHint()來返回QScrollArea的子部件的大小。

在你的問題中,它聽起來像你試圖重新實現MainWindow的sizeHint?在頂層窗口重新實現sizeHint將不起作用,因爲sizeHint設計用於佈局內部的小部件。