我想为QWidget maximumWidth设置动画,以便在动画布局中更改小部件大小,但它不起作用。我试图做以下事情:
QPropertyAnimation *animation1 = new QPropertyAnimation(m_textEditor2, "maximumWidth");
animation1->setStartValue(0);
animation1->setEndValue(100);
animation1->start();
编辑:对于minimumWidth属性,动画可以工作,但是对于maximumWidth - 否。因此,我在他们的bug报告网站上打开了一个错误:here。
答案 0 :(得分:0)
你的问题只是maximumWidth不是一个非常好用于动画的属性,因为它不会直接转换为Widget的实际大小。你最好使用geometry
,效果更好;例如,它会动画QTextEdit
:
class QtTest : public QMainWindow
{
Q_OBJECT
public:
QtTest()
{
m_textEdit = new QTextEdit(this);
};
protected:
QTextEdit *m_textEdit;
virtual void showEvent ( QShowEvent * event )
{
QWidget::showEvent(event);
QPropertyAnimation *animation = new QPropertyAnimation(m_textEdit, "geometry");
animation->setDuration(10000);
animation->setStartValue(QRect(0, 0, 100, 30));
animation->setEndValue(QRect(0, 0, 500, 30));
animation->start();
}
};