作者BIAO (超越自己)
看板C_and_CPP
標題[問題] Qt Layout 控件比例 視窗大小 問題
時間Tue Jun 27 22:53:08 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Windows
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
MinGW
問題(Question):
各位板友大家好,
目前我正用Qt做視窗程式,
其中希望一個ToolBar按鍵能夠將原本的横式改為直式,
横式的部份是建立三個QVBoxLayout,再用QGridLayout採用(0,0),(0,1),(0,2)方式
水平排列,QGridLayout屬於CentralWidget,CentralWidget為mainwindow的子視窗,
QVBoxLayout內的控件(含Vertical Spacer)皆有設Stretch的比重,
各控件也有設置最小size,窗口放大或縮小時,控件的寬高皆符合心中所想延伸,
控件及Layout的size policy皆為preferred.
一鍵切換直式的做法是將原先QGridLayout內的Item移除,
再重新AddLayout,把三個QVBoxLayout的內容放入,
QGridLayout是採用(0,0,1,2),(1,0),(1,1)依序排列Layout1~Layout3..
目前遇到的狀況是,一鍵按下去後,
視窗的大小不會改變,Layout1在上面,Layout2及3水平排列在下方,
但是當窗口向右拉長時,控件也會横向發展變寬,但控件內的圖片會因此扭曲,
不曉得控件或Layout設定中,有沒有能夠令控件寬高比例均衡成長的呢?
我希望能夠限制住控件的寬高比例,在控件高度無法增加時,也不讓視窗能夠拉長,
也許最大化視窗按鍵也需要Disable,懇請板上先進不吝賜教,指引方向尋找資料,
謝謝^^
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.208.239
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1498575191.A.009.html
※ 編輯: BIAO (61.230.208.239), 06/27/2017 23:34:39
1F:→ uranusjr: 有個方法是 subclass QGridLayout 然後 override 06/28 00:57
2F:→ uranusjr: hasHeightForWidth() 回傳 true, 然後 heightForWidth() 06/28 00:57
3F:→ uranusjr: 回傳某個 width 你希望有的 height 06/28 00:58
5F:→ BIAO: 看官方文檔好像可行,謝謝分享,另外我有查到也分享一下. 06/28 10:16
※ 編輯: BIAO (122.116.193.176), 06/28/2017 10:23:58
8F:推 xvid: 推分享:) 06/29 12:46