[英]Qt: Animating the 'roll down' of a QWidget
我有一个包含各种其他小部件的QWidget。 我想通过从上向下逐渐显示它,以使其出现在屏幕上的动画效果,将其高度从0增加到自然的高度。
我目前拥有的方式是:
mAnimation = new QPropertyAnimation(this, "maximumHeight");
mAnimation->setStartValue(0);
mAnimation->setEndValue(400);
mAnimation->start();
这有两个问题:-当高度达到一定高度时崩溃,并显示“ qDrawShadeRect:无效参数”错误。 -如果将0更改为100,则可以正常工作,但是要设置动画的QWidget中包含的控件的布局会随着动画的改变而改变,开始挤在一起并随着空间的增加逐渐散开。 这看起来很丑!
有没有人有什么建议?
对于第二个问题,我建议将所有内容包装在另一个具有固定大小的窗口小部件中。 由于窗口小部件的裁剪,这意味着该窗口小部件将在动画时显示全尺寸窗口小部件的一部分。
对于崩溃,我建议获取堆栈跟踪,并假设问题不在您的代码中, 请将其报告为bug 。
第二,而不是将窗口小部件精确地呈现在您想要的不同大小处,而是按照您希望其被看到的方式进行渲染。 例如:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.