QT之图形处理------图元调整大小的注意事项

问题的产生:
    我用QSplitter创建一个窗口布局之后,由于使用窗口默认初始大小,显示出来的比例不是很好看,因此调用了resize进行窗口大小的调整。调整之后是获得了想要的窗口大小,但是与此同时,却发现了一个问题,也就是经过resize之后的窗口无法使得其中的部件自适应窗口的拉伸了,不论是上下左右,都没有自适应。

    问题的分析:
    经过长达两个小时的检查,发现如果在布局之前使用resize就不会出现以上所表述的问题,而在布局之后使用resize就会出现如上所表述的问题。于是翻阅了Qt 的 resize API文档,终于发现了问题所在。


    
    resize操作的是部件尺寸,当部件可见且试图改变尺寸时,就会立即触发resizeEvent事件。
    ......(中间就不翻译了,关键的是resizeEvent)
    我们来看resizeEvent.


    当resizeEvent被调用后,部件将拥有新的几何尺寸,旧的尺寸将被QResizeEvent::oldSize()保留。

    问题的总结:
    综上,resize会调用resizeEvent,并对部件窗口进行重绘,而旧的窗口将被替换保留。在布局之前使用resize,可以调整窗口大小,此时布局尚未建立,因此并不影响拉伸。而在布局之后使用resize,虽然调整了窗口,但是新的尺寸将被定格下来,替换旧的尺寸,因此可能造成布局的自适应效果失效。

    以上是个人分析结果,如有错误,望不吝指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值