Как обновлять координаты эллипса на QGraphicsScene?

Сделал форму, добавил на неё сцену и хочу, чтобы по нажатию на клавишу, объект, созданный на сцене, начал передвигаться.

broun_dvig.h

#ifndef BROUN_DVIG_H
#define BROUN_DVIG_H

#include <QMainWindow>
#include <QGraphicsView>
#include <QPen>
#include <QTimer>

QT_BEGIN_NAMESPACE
namespace Ui { class Broun_dvig; }
QT_END_NAMESPACE

class Broun_dvig : public QMainWindow
{
    Q_OBJECT

public:
    Broun_dvig(QWidget *parent = nullptr);
    ~Broun_dvig();

private slots:
    void on_btn_start_clicked();
    void On_Timer();

private:
    Ui::Broun_dvig *ui;
    QGraphicsScene * scena;
    QGraphicsEllipseItem* ellipse;
    QTimer timer;
    double fi = rand()*2*3.14;
    double t = 0;
    double dt = 0.1;
    double x,
           y,
          x0,
          y0;

};
#endif // BROUN_DVIG_H

broun_dvig.cpp

#include "broun_dvig.h"
#include "ui_broun_dvig.h"

#include <QPen>
#include <cmath>

Broun_dvig::Broun_dvig(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::Broun_dvig)
{
    ui->setupUi(this);
    scena = new QGraphicsScene;


    ui->graphicsView->resize(600,600);
    ui->graphicsView->setScene(scena);
}

Broun_dvig::~Broun_dvig()
{
    delete ui;
}

void Broun_dvig::on_btn_start_clicked()
{


    QPen pen(Qt::green, 3, Qt::DashDotLine, Qt::RoundCap, Qt::RoundJoin);
    QBrush br;

    ellipse=scena->addEllipse(x, y, 20, 20, pen, br);

    updateGeometry();
    timer.start();
}

void Broun_dvig :: On_Timer()
{
    x += x * pow(fi,2) * t;
    y += y * pow(fi,2) * t;
    t+=dt;
  this->repaint();
}

Ответы (0 шт):