[問題] Qt Layout 控件比例 視窗大小 問題

看板C_and_CPP (C/C++)作者 (超越自己)時間8年前 (2017/06/27 22:53), 8年前編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1498575191.A.009.html ※ 編輯: BIAO (61.230.208.239), 06/27/2017 23:34:39

06/28 00:57, , 1F
有個方法是 subclass QGridLayout 然後 override
06/28 00:57, 1F

06/28 00:57, , 2F
hasHeightForWidth() 回傳 true, 然後 heightForWidth()
06/28 00:57, 2F

06/28 00:58, , 3F
回傳某個 width 你希望有的 height
06/28 00:58, 3F

06/28 00:59, , 4F
參考文件 http://d.pr/YdJSrU
06/28 00:59, 4F

06/28 10:16, , 5F
看官方文檔好像可行,謝謝分享,另外我有查到也分享一下.
06/28 10:16, 5F

06/28 10:18, , 6F
※ 編輯: BIAO (122.116.193.176), 06/28/2017 10:23:58

06/28 10:24, , 7F
06/28 10:24, 7F

06/29 12:46, , 8F
推分享:)
06/29 12:46, 8F
文章代碼(AID): #1PKd5N09 (C_and_CPP)
文章代碼(AID): #1PKd5N09 (C_and_CPP)