翻譯|使用教程|編輯:龔雪|2022-05-07 10:22:09.133|閱讀 216 次
概述:本文主要為大家介紹Qt 布局系統中的布局管理功能,歡迎大家下載相關組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt布局系統提供了一種簡單而強大的方式來自動排列小部件內的子小部件,以確保它們充分利用可用空間。
Qt技術交流群:166830288 歡迎一起進群討論
將小部件添加到布局時,布局過程如下:
拉伸因素
小部件通常是在沒有設置任何拉伸因素的情況下創建的,當它們在布局中布局時,根據() 或它們的最小尺寸提示,以較大者為準,為這些小部件分配空間份額。拉伸因素用于更改按比例分配的小部件的空間量。
如果使用沒有設置拉伸因素的 布局了三個小部件,將得到如下布局:
如果我們對每個小部件應用拉伸因素,它們將按比例排列(但絕不會小于它們的最小尺寸提示),例如:
當您創建自己的小部件類時,還應該傳達其布局屬性。 如果小部件使用 Qt 布局當中的一個,這已經被處理了。如果小部件沒有任何子小部件,或者使用手動布局,您可以使用以下任何或所有機制更改小部件的操作:
每當尺寸提示、最小尺寸提示或尺寸政策發生變化時,調用 (),這會導致重新計算布局,多次連續調用 () 只會導致一次布局重新計算。
如果您的小部件的首選高度取決于其實際寬度(例如,具有自動分詞的標簽),請在小部件的大小策略中設置 標志并重新實現 ()。
即使你實現了 (),提供一個合理的 sizeHint() 仍然是個好主意。
在標簽小部件中使用富文本可能會給其父小部件的布局帶來一些問題,當標簽是自動換行時,Qt 的布局管理器處理富文本的方式會出現問題。
在某些情況下,父布局被置于 QLayout::FreeResize 模式,這意味著它不會調整其內容的布局以適應小尺寸窗口,甚至阻止用戶使窗口太小而無法使用,這可以通過子類化有問題的小部件并實現合適的 () 和 () 函數來克服。
在某些情況下,將布局添加到小部件時是相關的。 當您設置 QDockWidget 或 QScrollArea 的小部件時(使用 QDockWidget::setWidget() 和 QScrollArea::setWidget()),布局必須已經在小部件上設置。 如果沒有,小部件將不可見。
Qt技術交流群:166830288 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網