Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mus_zzz от Январь 25, 2016, 08:42



Название: вопрос по QPropertyAnimation
Отправлено: mus_zzz от Январь 25, 2016, 08:42
Всем привет!Определяю анимацию для объекта в конструкторе:
Код:
 QPropertyAnimation *anim = new QPropertyAnimation(g, "poss");
    anim->setDuration(775);
    anim->setEasingCurve(QEasingCurve::InOutBack);
    anim->start();

При изменении свойства (положение на виджете) объекта должна проигрываться анимация ,но нету ее))
Вопрос:
-необходимо ли использовать  QGraphicsScene  и View для анимации?(смотрел в примерах)


 


Название: Re: вопрос по QPropertyAnimation
Отправлено: Bepec от Январь 25, 2016, 09:20
poss?

Слишком мало данных, что за g, что за poss.

Ответ на вопрос - нет, можно и просто виджеты дергать.


Название: Re: вопрос по QPropertyAnimation
Отправлено: mus_zzz от Январь 25, 2016, 09:58
Спасибо.Это созданное мной  новое свойство,перемещения "poss". А вот и класс:
Код:
class Pp :public QObject
{
    Q_OBJECT
   // Q_PROPERTY(QPointF pos READ pos WRITE setPos)
   // Q_PROPERTY(QPointF pol READ polRead WRITE setPol)
    Q_PROPERTY(QPointF poss READ poss WRITE setPos)
public:
    Pp(QWidget *parent):QObject(parent)
    {
        pos.setX(0.0);
        pos.setY(0.0);
    }
    ~Pp()
    {
    }

    QPointF poss() const
    {
        return pos;
    }
    void setPos(QPointF poss)
    {
        qreal x;
        qreal y;
        x = poss.x();
        y = poss.y();
        pos.setX(x);
        pos.setY(y);
    }
    void repaint(float x1,float y1,float width,float height,QWidget* parent)
    {
        QPainter *x = new QPainter(parent);
        x->setPen(QPen(Qt::red,10,Qt::SolidLine));
        x->setBrush(QBrush(Qt::green));

        x->drawEllipse(pos.x(),pos.y(),20,20);
        x->~QPainter();
    }
    QPointF pos;
};




Название: Re: вопрос по QPropertyAnimation
Отправлено: mus_zzz от Январь 25, 2016, 10:47
Забыл добавить анимацию в переход(метод addAnimation).
Все работает. )