作者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/cn.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