Qt窗体实现类似于PowerPoint 切换页面的推进效果

本文介绍如何在Qt应用中实现类似PowerPoint的窗体切换推进效果。通过调整窗体位置、大小和设置特定的WindowFlags,以及利用定时器改变窗体尺寸,可以创建无缝过渡的用户体验。关键步骤包括计算窗体位置、去除边框和标题栏、设置布局控件的Margin以及调整窗体内控件的sizePolicy,确保内容不干扰窗体resize效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如要在下图中弹出另外一个窗体,并且带有窗体逐步推进效果













首先,要想在一个窗体中弹出另外一窗体,只需调用show()方法即可,当然要弹出另外一个窗体应该是QDialog或者它的子类。


为了让窗体显示在QMainWindow的相应位置,我们应该想办法获取预弹出窗体的位置。由于QDialog的弹出位置是相对于桌面而言的,所以,我们可以先通过pos()方法获取QMainWindow的主上角位置,在获取左边窗体部件相对于QMainWindow而言的相对位置。又由于在QMainWindow中,部件的相对起始位置是窗体的内部空白区域的左上角,所以,在计算预弹出窗体的位置时,还应考虑窗体边框栏的宽度和主标题栏的高度。


为了让QDialog没有边框和标题栏,我们设置WindowFlags为Qt::FramelessWindowHint。但是仅仅这样设置,弹出窗体外围仍然又一圈空白区域,这是由于窗体的Margin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值