更新文档

This commit is contained in:
feiyangqingyun
2023-03-20 15:04:50 +08:00
parent de1053676c
commit 016603fbc5
37 changed files with 183 additions and 125 deletions

View File

@@ -11,7 +11,9 @@ Battery::Battery(QWidget *parent) : QWidget(parent)
maxValue = 100;
value = 0;
alarmValue = 30;
step = 0.5;
animation = true;
animationStep = 0.5;
borderWidth = 5;
borderRadius = 8;
@@ -91,7 +93,7 @@ void Battery::drawBg(QPainter *painter)
}
int margin = qMin(width(), height()) / 20;
double unit = (batteryRect.width() - (margin * 2)) / 100;
double unit = (batteryRect.width() - (margin * 2)) / (maxValue - minValue);
double width = currentValue * unit;
QPointF topLeft(batteryRect.topLeft().x() + margin, batteryRect.topLeft().y() + margin);
QPointF bottomRight(width + margin + borderWidth, batteryRect.bottomRight().y() - margin);
@@ -126,13 +128,13 @@ void Battery::drawHead(QPainter *painter)
void Battery::updateValue()
{
if (isForward) {
currentValue -= step;
currentValue -= animationStep;
if (currentValue <= value) {
currentValue = value;
timer->stop();
}
} else {
currentValue += step;
currentValue += animationStep;
if (currentValue >= value) {
currentValue = value;
timer->stop();
@@ -162,9 +164,14 @@ double Battery::getAlarmValue() const
return this->alarmValue;
}
double Battery::getStep() const
bool Battery::getAnimation() const
{
return this->step;
return this->animation;
}
double Battery::getAnimationStep() const
{
return this->animationStep;
}
int Battery::getBorderWidth() const
@@ -288,10 +295,14 @@ void Battery::setValue(double value)
}
this->value = value;
this->update();
emit valueChanged(value);
timer->stop();
timer->start();
if (animation) {
timer->stop();
timer->start();
} else {
this->currentValue = value;
this->update();
}
}
void Battery::setValue(int value)
@@ -312,17 +323,20 @@ void Battery::setAlarmValue(int alarmValue)
setAlarmValue((double)alarmValue);
}
void Battery::setStep(double step)
void Battery::setAnimation(bool animation)
{
if (this->step != step) {
this->step = step;
if (this->animation != animation) {
this->animation = animation;
this->update();
}
}
void Battery::setStep(int step)
void Battery::setAnimationStep(double animationStep)
{
setStep((double)step);
if (this->animationStep != animationStep) {
this->animationStep = animationStep;
this->update();
}
}
void Battery::setBorderWidth(int borderWidth)

View File

@@ -27,7 +27,9 @@ class Battery : public QWidget
Q_PROPERTY(double value READ getValue WRITE setValue)
Q_PROPERTY(double alarmValue READ getAlarmValue WRITE setAlarmValue)
Q_PROPERTY(double step READ getStep WRITE setStep)
Q_PROPERTY(bool animation READ getAnimation WRITE setAnimation)
Q_PROPERTY(double animationStep READ getAnimationStep WRITE setAnimationStep)
Q_PROPERTY(int borderWidth READ getBorderWidth WRITE setBorderWidth)
Q_PROPERTY(int borderRadius READ getBorderRadius WRITE setBorderRadius)
Q_PROPERTY(int bgRadius READ getBgRadius WRITE setBgRadius)
@@ -61,7 +63,9 @@ private:
double value; //目标电量
double alarmValue; //电池电量警戒值
double step; //每次移动的步长
bool animation; //是否启用动画显示
double animationStep; //动画显示时步长
int borderWidth; //边框粗细
int borderRadius; //边框圆角角度
int bgRadius; //背景进度圆角角度
@@ -87,7 +91,9 @@ public:
double getValue() const;
double getAlarmValue() const;
double getStep() const;
bool getAnimation() const;
double getAnimationStep() const;
int getBorderWidth() const;
int getBorderRadius() const;
int getBgRadius() const;
@@ -122,9 +128,10 @@ public Q_SLOTS:
void setAlarmValue(double alarmValue);
void setAlarmValue(int alarmValue);
//设置步长
void setStep(double step);
void setStep(int step);
//设置是否启用动画显示
void setAnimation(bool animation);
//设置动画显示的步长
void setAnimationStep(double animationStep);
//设置边框粗细
void setBorderWidth(int borderWidth);