#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QTimer>
#include <QGraphicsLineItem>
namespace Ui {
class Dialog;
}
{
Q_OBJECT
Q_PROPERTY(QPointF endPoint READ endPoint WRITE setEndPoint
)
public:
explicit Dialog
(QWidget *parent
= 0);
~Dialog();
public slots:
private:
Ui::Dialog *ui;
};
#endif // DIALOG_H
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QTimer>
#include <QGraphicsLineItem>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
Q_PROPERTY(QPointF endPoint READ endPoint WRITE setEndPoint)
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
QPointF endPoint() const;
public slots:
QPointF setEndPoint(const QPointF &pt);
private:
Ui::Dialog *ui;
QGraphicsScene *scene;
QTimer *timer;
QGraphicsLineItem *myLine;
};
#endif // DIALOG_H
To copy to clipboard, switch view to plain text mode
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QGraphicsView>
#include <QPropertyAnimation>
ui(new Ui::Dialog)
{
ui->setupUi(this);
ui->graphicsView->setScene(scene);
ui->graphicsView->setSceneRect(0,0,300,300);
ui
->graphicsView
->setRenderHint
(QPainter::Antialiasing);
myLine
->setPen
(QPen(Qt
::red,
5, Qt
::SolidLine, Qt
::RoundCap, Qt
::RoundJoin));
scene->addItem(myLine);
QPropertyAnimation *anim = new QPropertyAnimation(this, "endPoint");
anim
->setStartValue
(QPointF(50,
50));
anim
->setEndValue
(QPointF(200,
200));
anim->setDuration(1000);
anim->start();
}
Dialog::~Dialog()
{
delete ui;
}
{
return l.p2();
}
{
l.setP2(pt);
myLine->setLine(l);
}
#include "dialog.h"
#include "ui_dialog.h"
#include <QGraphicsView>
#include <QPropertyAnimation>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
ui->graphicsView->setSceneRect(0,0,300,300);
ui->graphicsView->setRenderHint(QPainter::Antialiasing);
myLine = new QGraphicsLineItem(0,0,10,10);
myLine->setPen(QPen(Qt::red, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
scene->addItem(myLine);
QPropertyAnimation *anim = new QPropertyAnimation(this, "endPoint");
anim->setStartValue(QPointF(50,50));
anim->setEndValue(QPointF(200,200));
anim->setDuration(1000);
anim->start();
}
Dialog::~Dialog()
{
delete ui;
}
QPointF Dialog::endPoint() const
{
QLineF l = myLine->line();
return l.p2();
}
QPointF Dialog::setEndPoint(const QPointF &pt)
{
QLineF l = myLine->line();
l.setP2(pt);
myLine->setLine(l);
}
To copy to clipboard, switch view to plain text mode
Bookmarks