c++ - Qt:动画 QWidget 的 'roll down'

标签 c++ qt animation qt4 qt4.6

我有一个包含各种其他小部件的 QWidget。我想通过从上到下逐渐显示它,将它的高度从 0 增加到它的自然高度来为它显示在屏幕上制作动画。

我目前的方式是:

mAnimation = new QPropertyAnimation(this, "maximumHeight");
mAnimation->setStartValue(0);
mAnimation->setEndValue(400);
mAnimation->start();  

这有两个问题: - 当高度达到一定高度时崩溃,并出现“qDrawShadeRect:无效参数”错误。 - 如果我将 0 更改为 100,它工作正常,但是我正在制作动画的 QWidget 中包含的小部件的布局随着小部件的动画而改变,开始时非常挤压在一起,随着它们获得更多空间而逐渐散开。这看起来很难看!

有人有什么建议吗?

最佳答案

对于第二个问题,我建议将小部件内的所有内容包装在另一个具有固定大小的小部件中。由于小部件的裁剪,这意味着小部件将在动画时显示全尺寸小部件的一部分。

关于c++ - Qt:动画 QWidget 的 'roll down',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016350/

相关文章:

iphone - 如何从停止位置开始 CAKeyframeAnimation

c++ - 将文件数据分配给结构数组

c++ - C++ 中的 CURL Post 方法

c++ - 如何访问 C 文件中的 C++ public bool 类成员(以验证)?

java - 如何在Android(JAVA版)中使用Cocos2D实现Sprite Animation?

CSS3 360º 连续旋转在 Chrome 中有效,但在 IE 中旋转回来

c++ - 内存错误c++ private int

c++ - QT HTML5 带有菜单栏,就像真实的程序一样

c++ - 如何获取 QSqlTableModel 中一行的行状态?

QT4 Qtableview禁用行选择