自動調整大小 Qt介面小細節 2

2021-08-14 04:46:42 字數 1231 閱讀 2836

簡述

在最近,總是和介面自動調整大小打交道,不是將隱藏的部分顯示出來,就是將顯示的部分隱藏起來,不是介面大小不變控制項自適應,就是控制項大小不變介面自適應。現在想來,都不知道自己怎麼實現的。╮(╯▽╰)╭ 

所以,現在將之前的整理了下。

介面不變控制項自適應

當介面的某部分需要隱藏,而介面大小不變,剩餘部分自適應介面。這種情況比較簡單,只需要設定好布局就行。

下面的例子,是通過按鈕控制下面的textbrowser的隱藏還是顯示。整個介面布局是垂直布局。通過可以清楚地看到控制項進行了很好的自適應。

控制項不變介面自適應

同樣情況,當介面的某部分需要隱藏,而為了美觀只需要控制項保持之前的大小,即介面適應控制項。

有幾種解決辦法:

辦法一

設定布局的大小約束,具體操作為:

layout()->setsizeconstraint(qlayout::setfixedsize);
這樣就可以實現控制項大小不變,介面變了。這個操作就是將主介面的大小固定了,不能再進行介面的大小操作,故最大化按鈕也就沒什麼意義了。

辦法二

這種辦法屬於最笨的的了。在我得不到想要的效果,就用這個辦法了。這個辦法就是:隱藏的時候,將主介面的大小進行重設,即變小;顯示時,再重新將主介面變大。說出來,也是夠丟人的。ε=(´ο`*)))唉。

根據內容的自調整

說到自動調整大小,很容易想起qwidget類的方法adjustsize(),這個方法是根據內容調整大小的。因為是根據內容調整的,在建構函式中呼叫這個方法是無效的,也就是建構函式還未執行,內容還未確定,無法自動調整。我們可以建立這類的物件後,再呼叫這個方法。

下面的例子是在隱藏後,通過按鈕來呼叫這個方法的效果圖。先按下隱藏按鈕,然後再按下自動調整按鈕 ,在回歸顯示。可以看出調整的介面的尺寸變小。這個調整是根據介面的內容,即介面包含的控制項,進行的調整。

qt 自動調整大小的實現

void mainwindow createstatusbar locationlabel new qlabel w999 以文字 w999 建立 乙個新的qlabel的物件 locationlabel setalignment qt alignhcenter 文字對齊方式為中間對齊 locatio...

窗體自動調整大小

關於窗體自動調整大小,網上資料一搜一大片,大部分雷同,我使用後發現都有些小毛病就是多托拉幾次後,再拉回原來大小,畫面顯示效果和開始的時候有點不一樣。所以針對網上的 做了些修改,呵呵,不過變數名什麼的沒改。private objoldwidth as long private objoldheight...

C winfrom 自動調整控制項大小

最近公司要重構乙個專案,把c 寫的桌面應用改為winfrom,而此時我遇到乙個問題就是winfrom控制項的自動放大和縮小,就是根據視窗的大小來改變winfrom視窗和容器內的控制項的大小。在網上找了很多得到的效果並不如意,大多數都在介紹控制項中的anchor屬性,但是這個屬性會受各方面的影響,比如...