rich.h
#ifndef RICH_H
#define RICH_H
#include <QWidget>
namespace Ui {
class Rich;
}
class Rich : public QWidget
{
Q_OBJECT
/自定义属性函数;
Q_PROPERTY(qreal money READ money WRITE setMoney);
public:
explicit Rich(QWidget *parent = nullptr);
~Rich();
//const作用 是为了当我们读money时避免被setMoney修改了;
//qreal是double
qreal money() const;
void setMoney(qreal m);
private:
Ui::Rich *ui;
qreal richMoney;
};
#endif // RICH_H
rich.cpp
#include "rich.h"
#include "ui_rich.h"
Rich::Rich(QWidget *parent) :
QWidget(parent),
ui(new Ui::Rich),
richMoney(500)
{
ui->setupUi(this);
}
Rich::~Rich()
{
delete ui;
}
qreal Rich::money() const
{
return richMoney;
}
void Rich::setMoney(qreal m)
{
richMoney = m;
ui->label->setText(QString::number(richMoney)+"亿");
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QPropertyAnimation>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
rich = new Rich(this);
// rich ->setMoney(100);
// rich->setProperty("money",200);
// qDebug() << rich->money() <<endl;
//自定义属性动画;
QPropertyAnimation *propertyAnimation = new QPropertyAnimation(rich,"money");
propertyAnimation->setStartValue(0);
propertyAnimation->setEndValue(1000);
propertyAnimation->setDuration(5000);
propertyAnimation->setEasingCurve(QEasingCurve::Linear);
propertyAnimation->start();
}
Widget::~Widget()
{
delete ui;
}
实现效果: