各位是否和我一樣感覺Qt布局管理器很難調整到想要的效果?

時間 2021-06-06 20:43:06

1樓:李飛

qt不適合複雜布局巢狀,layout的stretch設定比例就是吃屎一樣的邏輯。

Widget::Widget(QWidget *parent) :

QWidget(parent)

void Widget::showEvent(QShowEvent *event)

setFixedSize設定了控制項寬度為200,兩個QLabel的stretch比例為1:1,執行效果為:

控制台輸出為:

keyLabel size: QSize(18, 26)

valueLabel size: QSize(176, 26)

這裡看到兩個QLabel的比例並非1:1,而是keyLabel佔了能顯示完自身文字的大小,而valueLabel佔了所有剩下的控制項大小,雖然它依然無法完全顯示自身的文字。

於是猜測,stretch是去掠奪控制項剩餘的空間,而不是按比例分配。

但是!setFixedSize設定控制項寬度為1000,則執行效果為:

控制台輸出為:

keyLabel size: QSize(497, 26)

valueLabel size: QSize(497, 26)

奇蹟發生了!在QLabel能完整顯示自身文字的情況下,stretch比例又起作用了!

keyLabel和valueLabel兩個控制項寬度一樣!stretch又表示按比例分配了!

這吃屎一樣的邏輯是怎麼回事???

如果我要達到的ui效果是多行文字顯示,每行文字又分兩個小文字,前乙個小文字顯示後乙個文字所代表的含義,後乙個文字顯示使用者關心的值。那麼就無法用這種簡單的效果達到了。

需要的ui效果(簡單示例):

姓名qt吊炸天

職位qt跨平台無敵,炫酷!

個人簡介: 最做拽的庫,忘記了自己是個寫ui的平台。

其他還有一些更奇妙的邏輯,太長略過了。

總而言之,言而總之,諾基亞用qt寫手機ui,焉能不敗於Android??

yy用qt寫ui,怪不得醜不拉幾的。

然而QString是真的好用:)

2樓:涼暈

建議好好研究一下designer,裡面有個很有用的就是設定布局內控制項比例的!用用看,你一定會發現能解決大部分遇到的布局問題!還是不行的話,去看看官方資料,真心不是Qt不行。

有時間的可以去看看QtCreator的原始碼,裡面對於布局就處理的就很好啊!

3樓:夏葉隨風

感覺qt的布局管理器不如安卓的爽,安卓的相對布局用起來特別爽,貌似最近出了個新布局,qt要不停的巢狀水平或者垂直布局特別麻煩

4樓:Kevin Town

其實Qt的自動布局還是很好用的,不管是固定數值還是按比例拉伸縮放,網格對齊,各種布局方式基本都能滿足,實在不行還可以實現自己的布局管理類。

不過題主所說的控制項的長寬固定比例的確不太好弄,我在網上也沒有找到好的解決方法,有的說重寫heightforwidth方法,但我覺得不好用,我也想知道有沒有什麼好方法?

5樓:shuhari

我看不明白為什麼響應視窗大小變化事件自己調整控制項會比直接用布局管理器更簡單。Qt布局管理器實現按比例伸縮很麻煩嗎?自己計算座標,一大堆算式很好玩?

不過也沒關係,開源的好處就是你不爽官方的實現可以開個專案自己玩,如果有很多人來star你的專案,就可以證明你的想法是對的。

你是否也和我一樣,想回到過去?

書生 想!無時無刻不想回到過去,彌補自己的過錯。事與願違,曾經有乙份真誠的愛情擺在我面前,我沒有珍惜直到失去才後悔莫及。摘抄 大話西遊 回不到過去就當一種成經歷吧! 吳輝杲 人生只有一次。沿著時間的主軸,人從生走向死亡。這是一次旅程。但是,由於旅程當中的所有經歷都是第一次也是唯一的一次,所以,總會有...

現在的90後是否都和我一樣迷茫?

蘿莉豬豬 都這樣,在銀行體制內,無數次要辭職,單位活沒人做,很混亂反正,基本都是一眼望到底,大部分人都是還挺滿足,得過且過,沒有再追求的心,已經都在養老了,沒有共同話題,狀態也很不好。家裡總說是再堅持堅持,感覺好沒有意義。 90年的,當初聽家裡人念叨女孩子找個國企呆著最穩妥,不要想著掙錢,拼死拼活的...

有沒有和我一樣,感覺自己內心扭曲但外表給人開朗溫柔的?

你心裡的陰暗面在很多人的心裡都是有的,你所想象的都是你所見過或者幻想出來的。但其實你很優秀,只是你不敢相信那是你自己。你說你是偽裝出的樂觀和善良,你表現出來的不是乙個真實的你,但是試問多少人會把自己徹底交出去,除非遇到乙個真正值得信任的人吧。我曾經一度不相信自己,不相信這個世界。但我知道這個世界的陰...