为什么不能为QWidget的“maximumWidth”参数设置动画?

时间:2010-07-20 19:30:47

标签: c++ qt animation qwidget

  

可能重复:
  Qt - There is a bug in QPropertyAnimation?

我想为QWidget maximumWidth设置动画,以便在动画布局中更改小部件大小,但它不起作用。我试图做以下事情:

QPropertyAnimation *animation1 = new QPropertyAnimation(m_textEditor2, "maximumWidth");
animation1->setStartValue(0);
animation1->setEndValue(100);
animation1->start();

编辑:对于minimumWidth属性,动画可以工作,但是对于maximumWidth - 否。因此,我在他们的bug报告网站上打开了一个错误:here

1 个答案:

答案 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();
        }
};