自动调整大小--Qt界面小细节(2)

简述

    在最近,总是和界面自动调整大小打交道,不是将隐藏的部分显示出来,就是将显示的部分隐藏起来,不是界面大小不变控件自适应,就是控件大小不变界面自适应。现在想来,都不知道自己怎么实现的。╮(╯▽╰)╭ 

   所以,现在将之前的整理了下。
 

界面不变控件自适应

    当界面的某部分需要隐藏,而界面大小不变,剩余部分自适应界面。这种情况比较简单,只需要设置好布局就行。

    下面的例子,是通过按钮控制下面的textBrowser的隐藏还是显示。整个界面布局是垂直布局。通过图片可以清楚地看到控件进行了很好的自适应。

控件不变界面自适应

   同样情况,当界面的某部分需要隐藏,而为了美观只需要控件保持之前的大小,即界面适应控件。

    有几种解决办法:

  办法一

   设置布局的大小约束,具体操作为:

layout()->setSizeConstraint(QLayout::SetFixedSize);

这样就可以实现控件大小不变,界面变了。这个操作就是将主界面的大小固定了,不能再进行界面的大小操作,故最大化按钮也就没什么意义了。

办法二

    这种办法属于最笨的的了。在我得不到想要的效果,就用这个办法了。这个办法就是:隐藏的时候,将主界面的大小进行重设,即变小;显示时,再重新将主界面变大。说出来,也是够丢人的。ε=(´ο`*)))唉。

根据内容的自调整

    说到自动调整大小,很容易想起QWidget类的方法adjustSize(),这个方法是根据内容调整大小的。因为是根据内容调整的,在构造函数中调用这个方法是无效的,也就是构造函数还未执行,内容还未确定,无法自动调整。我们可以创建这类的对象后,再调用这个方法。

   下面的例子是在隐藏后,通过按钮来调用这个方法的效果图。先按下隐藏按钮,然后再按下自动调整按钮 ,在回归显示。可以看出调整的界面的尺寸变小。这个调整是根据界面的内容,即界面包含的控件,进行的调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值