QT怎么样实现对话框的伸缩功能

加盾男爵 2018-07-01 10:28:45
功能类似这样
这里有个按钮,点击一个按钮,就会弹出一个对话框


在我的程序里,有一个长方形的对话框,始终位于程序的右下角,点击一下对话框就会像抽屉一样申出来,再点击一下会缩回去,这里要求对话框伸缩的速度不是非常快,至少用户可以很清楚的看清对话框伸缩,整个过程大概在0.5秒左右完成而不是瞬间出现的

最初我用一个对话框X来实现,设置一个定时器,点击按钮后对话框向右移动一定的位置,在0.5秒内完成,但这里有两个问题
第一:对话框的位置出现问题,由于父程序不总是处于最大化的状态,我必须在父窗体移动时计算父窗体在屏幕中的位置,然后移动对话框X,可能受硬件条件的限制,对话框移动的时候明显有点“卡”,感觉是一格一格的在移动,不够平滑,
第二:对话框X自身移动时(点击了伸缩按钮)也能明显看出一格一格的在移动,不够平滑

第二个方案也是使用对话框,然后用定时器,在0.5秒的时间里缩小对话框的尺寸,但这中方法也遇到两个问题
第一:窗体缩小宽度是左右两边同时缩小,这到时没缩小一个尺寸我还要移动对话框,视觉效果上还是一格一格(还有左右移动的效
果,。,,,)
第二:窗体上有些图片之类的,在这0.5秒的缩小/放大时间里明显看出被压缩/拉伸,导致图片面目全非。。。


你们有跟好的方案吗?
...全文
614 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1点击buttong, 显示窗体。

2点击button,改变width, 想要动画用 QAnimationProperty的geometry。

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧