看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
uranusjr: 有個方法是 subclass QGridLayout 然後 override 06/28 00:57
uranusjr: hasHeightForWidth() 回傳 true, 然後 heightForWidth() 06/28 00:57
uranusjr: 回傳某個 width 你希望有的 height 06/28 00:58
uranusjr: 參考文件 http://d.pr/YdJSrU 06/28 00:59
BIAO: 看官方文檔好像可行,謝謝分享,另外我有查到也分享一下. 06/28 10:16
※ 編輯: BIAO (122.116.193.176), 06/28/2017 10:23:58
BIAO: https://goo.gl/McqmYU 06/28 10:24
xvid: 推分享:) 06/29 12:46