如何画仪表盘,https://zhuanlan.zhihu.com/p/63062099
知乎大佬已经分享动态代码,我在此把静态代码附上,复制粘贴就可以在Qt Creator上使用
静态效果如图:
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPainter>
#include <QColor>
#include <QtMath>
#include <QPainterPath>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
Q_ENUMS(PieStyle)
Q_ENUMS(PointerStyle)
Q_PROPERTY(double minValue READ getMinValue WRITE setMinValue)
Q_PROPERTY(double maxValue READ getMaxValue WRITE setMaxValue)
Q_PROPERTY(double value READ getValue WRITE setValue)
Q_PROPERTY(int precision READ getPrecision WRITE setPrecision)
Q_PROPERTY(int scaleMajor READ getScaleMajor WRITE setScaleMajor)
Q_PROPERTY(int scaleMinor READ getScaleMinor WRITE setScaleMinor)
Q_PROPERTY(int startAngle READ getStartAngle WRITE setStartAngle)
Q_PROPERTY(int endAngle READ getEndAngle WRITE setEndAngle)
Q_PROPERTY(double piePercentStart READ getPiePercentStart WRITE setPiePercentStart)
Q_PROPERTY(double piePercentMid READ getPiePercentMid WRITE setPiePercentMid)
Q_PROPERTY(double piePercentEnd READ getPiePercentEnd WRITE setPiePercentEnd)
Q_PROPERTY(QColor outerCircleColor READ getOuterCircleColor WRITE setOuterCircleColor)
Q_PROPERTY(QColor innerCircleColor READ getInnerCircleColor WRITE setInnerCircleColor)
Q_PROPERTY(QColor pieColorStart READ getPieColorStart WRITE setPieColorStart)
Q_PROPERTY(QColor pieColorMid READ getPieColorMid WRITE setPieColorMid)
Q_PROPERTY(QColor pieColorEnd READ getPieColorEnd WRITE setPieColorEnd)
Q_PROPERTY(QColor coverCircleColor READ getCoverCircleColor WRITE setCoverCircleColor)
Q_PROPERTY(QColor scaleColor READ getScaleColor WRITE setScaleColor)
Q_PROPERTY(QColor pointerColor READ getPointerColor WRITE setPointerColor)
Q_PROPERTY(QColor centerCircleColor READ getCenterCircleColor WRITE setCenterCircleColor)
Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor)
Q_PROPERTY(bool showOverlay READ getShowOverlay WRITE setShowOverlay)
Q_PROPERTY(QColor overlayColor READ getOverlayColor WRITE setOverlayColor)
Q_PROPERTY(int circleWidth READ getCircleWidth WRITE setCircleWidth)
Q_PROPERTY(PieStyle pieStyle READ getPieStyle WRITE setPieStyle)
Q_PROPERTY(PointerStyle pointerStyle READ getPointerStyle WRITE setPointerStyle)
public:
enum PieStyle
{
PieStyle_Three = 0, //三色圆环
PieStyle_Current = 1 //当前圆环
};
enum PointerStyle
{
PointerStyle_Circle = 0, //圆形指示器
PointerStyle_Indicator = 1, //指针指示器
PointerStyle_IndicatorR = 2, //圆角指针指示器
PointerStyle_Triangle = 3 //三角形指示器
};
Widget(QWidget *parent = nullptr);
~Widget();
protected:
void paintEvent(QPaintEvent *);
void drawOuterCircle(QPainter *painter);//外圆
void drawInnerCircle(QPainter *painter);//内圆
void drawColorPie(QPainter *painter);//饼圆
void drawCoverCircle(QPainter *painter);
void drawScale(QPainter *painter);
void drawScaleNum(QPainter *painter);
void drawPointerCircle(QPainter *painter);
void drawPointerIndicator(QPainter *painter);
void drawPointerIndicatorR(QPainter *painter);
void drawPointerTriangle(QPainter *painter);
void drawRoundCircle(QPainter *painter);
void drawCenterCircle(QPainter *painter);
void drawValue(QPainter *painter);
void drawOverlay(QPainter *painter);
private:
Ui::Widget *ui;
double minValue;//最小值
double maxValue;//最大值
double value;//目标值
int precision;//精确度,小数点后几位
int scaleMajor;//大刻度数量
int scaleMinor;//小刻度数量
int startAngle;//开始旋转角度
int endAngle; //结束旋转角度
double piePercentStart;//饼圆开始占比
double piePercentMid;//饼圆中间占比
double piePercentEnd;//饼圆结束占比
QColor outerCircleColor;//外圆背景颜色
QColor innerCircleColor;//内圆背景颜色
QColor pieColorStart;//饼圆开始颜色
QColor pieColorMid; //饼圆中间颜色
QColor pieColorEnd; //饼圆结束颜色
QColor coverCircleColor;//覆盖圆背景颜色
QColor scaleColor; //刻度尺颜色
QColor pointerColor;//指针颜色
QColor centerCircleColor;//中心圆颜色
QColor textColor;//文字颜色
bool showOverlay;//显示遮罩层
QColor overlayColor;//遮罩层颜色
int circleWidth;//中间饼宽度
PieStyle pieStyle;//饼图样式
PointerStyle pointerStyle;//指针样式
bool reverse;//是否往回走
double currentValue;//当前值
QTime *timer;//定时器绘制动画
public:
//默认尺寸和尺寸最小值
QSize sizeHint() const;
QSize minimumSizeHint() const;
//设置范围值
void setRange(double minValue,double maxValue);
void setRange(int minValue,int maxValue);
//获取和设置最小值
double getMinValue() const;
void setMinValue(double minValue);
//获取和设置最大值
double getMaxValue() const;
void setMaxValue(double maxValue);
//获取和设置当前值
double getValue() const;
void setValue(double value);
//获取和设置精确度
int getPrecision() const;
void setPrecision(int precision);
//获取和设置主刻度数量
int getScaleMajor() const;
void setScaleMajor(int scaleMajor);
//获取和设置小刻度数量
int getScaleMinor() const;
void setScaleMinor(int scaleMinor);
//获取和设置开始旋转按钮
int getStartAngle() const;
void setStartAngle(int startAngle);
//获取和设置结束旋转按钮
int getEndAngle() const;
void setEndAngle(int endAngle);
//获取和设置开始饼圆占比
double getPiePercentStart() const;
void setPiePercentStart(double piePercentStart);
//获取和设置中间饼圆占比
double getPiePercentMid() const;
void setPiePercentMid(double piePercentMid);
//获取和设置结束饼圆占比
double getPiePercentEnd() const;
void setPiePercentEnd(double piePercentEnd);
//获取和设置外圆背景颜色
QColor getOuterCircleColor() const;
void setOuterCircleColor(const QColor &outerCircleColor);
//获取和设置内圆背景颜色
QColor getInnerCircleColor() const;
void setInnerCircleColor(const QColor &innerCircleColor);
//获取和设置开始饼圆颜色
QColor getPieColorStart() const;
void setPieColorStart(const QColor &pieColorStart);
//获取和设置中间饼圆颜色
QColor getPieColorMid() const;
void setPieColorMid(const QColor &pieColorMid);
//获取和设置结束饼圆颜色
QColor getPieColorEnd() const;
void setPieColorEnd(const QColor &pieColorEnd);
//获取和设置覆盖圆背景颜色
bool getAnimation() const;
void setAnimation(bool animation);
//获取和设置动画显示的步长
double getAnimationStep() const;
void setAnimationStep(double animationStep);
//获取和设置文本颜色
QColor getTextColor() const;
void setTextColor(const QColor &textColor);
//获取和设置是否显示遮罩层
bool getShowOverlay() const;
void setShowOverlay(bool showOverlay);
//获取和设置遮罩层颜色
QColor getOverlayColor() const;
void setOverlayColor(const QColor &overlayColor);
//获取和设置中间圆宽度
int getCircleWidth() const;
void setCircleWidth(int circleWidth);
//获取和设置中心圆颜色
QColor getCoverCircleColor() const;
void setCoverCircleColor(const QColor &coverCircleColor);
//获取和设置刻度尺颜色
QColor getScaleColor() const;
void setScaleColor(const QColor &scaleColor);
//获取和设置指针颜色
QColor getPointerColor() const;
void setPointerColor(const QColor &pointerColor);
//获取和设置中心圆颜色
QColor getCenterCircleColor() const;
void setCenterCircleColor(const QColor ¢erCircleColor);
//获取和设置饼图样式
PieStyle getPieStyle() const;
void setPieStyle(const PieStyle &pieStyle);
//获取和设置指针样式
PointerStyle getPointerStyle() const;
void setPointerStyle(const PointerStyle &pointerStyle);
Q_SIGNALS:
void valueChanged(int value);
public Q_SLOT:
void setValue(int value);
};
#endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFont font;
font.setFamily("Microsoft Yahei");
font.setPixelSize(13);
a.setFont(font);
#if(QT_VERSION < QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCString(codec);
QTextCodec::setCodecDForTr(codec);
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
#endif
Widget w;
w.setWindowTitle("仪表盘");
w.show();
return a.exec();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
minValue = 0;//刻度线最小值
maxValue = 100;
value = 50;//没有起到作用
precision = 0;//刻度线上标的数字的小数点
scaleMajor = 10;
scaleMinor = 10;
startAngle = 45;
endAngle = 45;
piePercentStart = 0.7;
piePercentMid = 0.15;
piePercentEnd = 0.15;
outerCircleColor = QColor(80,80,80);
innerCircleColor = QColor(60,60,60);
pieColorStart = QColor(24,189,155);
pieColorMid = QColor(218,218,155);
pieColorEnd = QColor(255,107,107);
coverCircleColor = QColor(100,100,100);
scaleColor = QColor(255,255,255);
pointerColor= QColor(255,107,107);
centerCircleColor = QColor(250,250,250);
textColor = QColor(0,0,0);
showOverlay = true;
overlayColor = QColor(255,255,255,60);
circleWidth = 15;
pieStyle =PieStyle_Three;
pointerStyle = PointerStyle_Indicator;
currentValue = 34;
QFont font;
font.setFamily("Arial");
font.setPixelSize(11);
setFont(font);
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *)
{
int width = this->width();
int height = this->height();
int side = qMin(width,height);
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
painter.translate(width / 2, height / 2);
painter.scale(side / 200.0, side / 200.0);
drawOuterCircle(&painter);//绘制外圆
drawInnerCircle(&painter);//绘制内圆
drawColorPie(&painter);//绘制饼圆
drawCoverCircle(&painter);//绘制覆盖圆,用以遮挡饼圆多余部分
drawScale(&painter);//绘制刻度线
drawScaleNum(&painter);//绘制刻度值
//根据指示器形状绘制指示器
if (pointerStyle == PointerStyle_Circle)
{
drawPointerCircle(&painter);
}
else if (pointerStyle == PointerStyle_Indicator)
{
drawPointerIndicator(&painter);
}
else if (pointerStyle == PointerStyle_IndicatorR)
{
drawPointerIndicatorR(&painter);
}
else if (pointerStyle == PointerStyle_Triangle)
{
drawPointerTriangle(&painter);
}
//绘制指针中心圆外边框
drawRoundCircle(&painter);
//绘制指针中心圆
drawCenterCircle(&painter);
//绘制当前值
drawValue(&painter);
//绘制遮罩层
drawOverlay(&painter);
}
void Widget::drawOuterCircle(QPainter *painter)
{
int radius = 99;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(outerCircleColor);//
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void Widget::drawInnerCircle(QPainter *painter)
{
int radius = 90;
painter->save();
painter->setPen(Qt::NoPen);
painter->setPen(innerCircleColor);//
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void Widget::drawColorPie(QPainter *painter)
{
int radius = 60;
painter->save();
painter->setPen(Qt::NoPen);
QRectF rect(-radius, -radius, radius * 2, radius * 2);
if (pieStyle == PieStyle_Three)
{
//计算总范围角度,根据占比例自动计算三色圆环范围角度
//可以更改比例
double angleAll = 360.0 - startAngle - endAngle;
double angleStart = angleAll * 0.7;//饼圆的0.7
double angleMid = angleAll * 0.15; //饼圆的0.15
double angleEnd = angleAll * 0.15; //饼圆的0.15
//增加偏移量使得看起来没有脱节
int offset = 3;
//绘制开始饼圆
painter->setBrush(pieColorStart);
painter->drawPie(rect, (270 - startAngle - angleStart) * 16, angleStart * 16);
//绘制中间饼圆
painter->setBrush(pieColorMid);
painter->drawPie(rect, (270 - startAngle - angleStart - angleMid) * 16 + offset, angleMid * 16);
//绘制结束饼圆
painter->setBrush(pieColorEnd);
painter->drawPie(rect, (270 - startAngle - angleStart - angleMid - angleEnd) * 16 + offset * 2, angleEnd * 16);
}
else if (pieStyle == PieStyle_Current)
{
//计算总范围角度,当前值范围角度,剩余值范围角度
double angleAll = 360.0 - startAngle - endAngle;
double angleCurrent = angleAll * ((currentValue - minValue) / (maxValue - minValue));
double angleOther = angleAll - angleCurrent;
//绘制当前值饼圆
painter->setBrush(pieColorStart);
painter->drawPie(rect, (270 - startAngle - angleCurrent) * 16, angleCurrent * 16);
//绘制剩余值饼圆
painter->setBrush(pieColorEnd);
painter->drawPie(rect, (270 - startAngle - angleCurrent - angleOther) * 16, angleOther * 16);
}
painter->restore();
}
void Widget::drawCoverCircle(QPainter *painter)
{
int radius = 50;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(coverCircleColor);
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void Widget::drawScale(QPainter *painter)
{
int radius = 72;
painter->save();
painter->rotate(startAngle);
int steps = (scaleMajor * scaleMinor);
double angleStep = (360.0 - startAngle - endAngle) / steps;
QPen pen;
pen.setColor(scaleColor);
pen.setCapStyle(Qt::RoundCap);
for (int i = 0; i <= steps; ++i) {
if (i % scaleMinor == 0) {
pen.setWidthF(1.5);
painter->setPen(pen);
painter->drawLine(0, radius - 10, 0, radius);
} else {
pen.setWidthF(0.5);
painter->setPen(pen);
painter->drawLine(0, radius - 5, 0, radius);
}
painter->rotate(angleStep);
}
painter->restore();
}
void Widget::drawScaleNum(QPainter *painter)
{
int radius = 82;
painter->save();
painter->setPen(scaleColor);
double startRad = (360 - startAngle - 90) * (M_PI / 180);
double deltaRad = (360 - startAngle - endAngle) * (M_PI / 180) / scaleMajor;
for (int i = 0; i <= scaleMajor; i++) {
double sina = qSin(startRad - i * deltaRad);
double cosa = qCos(startRad - i * deltaRad);
double value = 1.0 * i * ((maxValue - minValue) / scaleMajor) + minValue;
QString text = QString("%1").arg((double)value, 0, 'f', precision);
#if(QT_VERSION >= QT_VERSION_CHECK(5,11,0))
double textWidth = fontMetrics().horizontalAdvance(text);
#else
double textWidth = fontMetrics().width(text);
#endif
double textHeight = fontMetrics().height();
int x = radius * cosa - textWidth / 2;
int y = -radius * sina + textHeight / 4;
painter->drawText(x, y, text);
}
painter->restore();
}
void Widget::drawPointerCircle(QPainter *painter)
{
int radius = 6;
int offset = 30;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(pointerColor);
painter->rotate(startAngle);
double degRotate = (360.0 - startAngle - endAngle) / (maxValue - minValue) * (currentValue - minValue);
painter->rotate(degRotate);
painter->drawEllipse(-radius, radius + offset, radius * 2, radius * 2);
painter->restore();
}
void Widget::drawPointerIndicator(QPainter *painter)
{
int radius = 75;
painter->save();
painter->setOpacity(0.8);
painter->setPen(Qt::NoPen);
painter->setBrush(pointerColor);
QPolygon pts;
pts.setPoints(3, -5, 0, 5, 0, 0, radius);
painter->rotate(startAngle);
double degRotate = (360.0 - startAngle - endAngle) / (maxValue - minValue) * (currentValue - minValue);
painter->rotate(degRotate);
painter->drawConvexPolygon(pts);
painter->restore();
}
void Widget::drawPointerIndicatorR(QPainter *painter)
{
int radius = 75;
painter->save();
painter->setOpacity(1.0);
QPen pen;
pen.setWidth(1);
pen.setColor(pointerColor);
painter->setPen(pen);
painter->setBrush(pointerColor);
QPolygon pts;
pts.setPoints(3, -5, 0, 5, 0, 0, radius);
painter->rotate(startAngle);
double degRotate = (360.0 - startAngle - endAngle) / (maxValue - minValue) * (currentValue - minValue);
painter->rotate(degRotate);
painter->drawConvexPolygon(pts);
//增加绘制圆角直线,与之前三角形重叠,形成圆角指针
pen.setCapStyle(Qt::RoundCap);
pen.setWidthF(4);
painter->setPen(pen);
painter->drawLine(0, 0, 0, radius);
painter->restore();
}
void Widget::drawPointerTriangle(QPainter *painter)
{
int radius = 10;
int offset = 38;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(pointerColor);
QPolygon pts;
pts.setPoints(3, -5, 0 + offset, 5, 0 + offset, 0, radius + offset);
painter->rotate(startAngle);
double degRotate = (360.0 - startAngle - endAngle) / (maxValue - minValue) * (currentValue - minValue);
painter->rotate(degRotate);
painter->drawConvexPolygon(pts);
painter->restore();
}
void Widget::drawRoundCircle(QPainter *painter)
{
int radius = 18;
painter->save();
painter->setOpacity(0.8);
painter->setPen(Qt::NoPen);
painter->setBrush(pointerColor);
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void Widget::drawCenterCircle(QPainter *painter)
{
int radius = 15;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(centerCircleColor);
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void Widget::drawValue(QPainter *painter)
{
int radius = 100;
painter->save();
painter->setPen(textColor);
QFont font;
font.setPixelSize(18);
painter->setFont(font);
QRectF textRect(-radius, -radius, radius * 2, radius * 2);
QString strValue = QString("%1").arg((double)currentValue, 0, 'f', precision);//最小中心圆数值currentValue
painter->drawText(textRect, Qt::AlignCenter, strValue);
painter->restore();
}
void Widget::drawOverlay(QPainter *painter)
{
if (!showOverlay) {
return;
}
int radius = 90;
painter->save();
painter->setPen(Qt::NoPen);
QPainterPath smallCircle;
QPainterPath bigCircle;
radius -= 1;
smallCircle.addEllipse(-radius, -radius, radius * 2, radius * 2);
radius *= 2;
bigCircle.addEllipse(-radius, -radius + 140, radius * 2, radius * 2);
//高光的形状为小圆扣掉大圆的部分
QPainterPath highlight = smallCircle - bigCircle;
QLinearGradient linearGradient(0, -radius / 2, 0, 0);
overlayColor.setAlpha(100);
linearGradient.setColorAt(0.0, overlayColor);
overlayColor.setAlpha(30);
linearGradient.setColorAt(1.0, overlayColor);
painter->setBrush(linearGradient);
painter->rotate(-20);
painter->drawPath(highlight);
painter->restore();
}
QSize Widget::sizeHint() const
{
return QSize(200,200);
}
QSize Widget::minimumSizeHint() const
{
return QSize(50,50);
}
void Widget::setRange(double minValue, double maxValue)
{
//如果最小值大于或等于最大值,则不设置
if(minValue >= maxValue)
{
return;
}
this->minValue = minValue;
this->maxValue = maxValue;
//如果目标值不在范围值之内,则重新设置目标值
//值小于最小值则取最小值,大于最大值则取最大值
if(value < minValue)
{
setValue(minValue);
}
else if(value > maxValue)
{
setValue(maxValue);
}
this->update();
}
void Widget::setRange(int minValue, int maxValue)
{
setRange((double)minValue,(double)maxValue);
}
double Widget::getMinValue() const
{
return this->minValue;
}
void Widget::setMinValue(double minValue)
{
setRange(minValue,maxValue);
}
double Widget::getMaxValue() const
{
return this->maxValue;
}
void Widget::setMaxValue(double maxValue)
{
setRange(minValue,maxValue);
}
double Widget::getValue() const
{
return this->value;
}
void Widget::setValue(double value)
{
//值和当前一致则无需处理
if(value == this->value)
{
return;
}
//值小于最小值则取最小值,大于最大值则取最大值
if(value < minValue)
{
value = minValue;
}
else if(value > maxValue)
{
value = maxValue;
}
this->value = value;
this->update();
emit valueChanged(value);
}
void Widget::setValue(int value)
{
setValue((double)value);
}
int Widget::getPrecision() const
{
return this->precision;
}
void Widget::setPrecision(int precision)
{
//最大精确度为3
if(precision <= 3 && this->precision !=precision)
{
this->precision = precision;
this->update();
}
}
int Widget::getScaleMajor() const
{
return this->scaleMajor;
}
void Widget::setScaleMajor(int scaleMajor)
{
if(scaleMajor >0 && this->scaleMajor != scaleMajor)
{
this->scaleMajor = scaleMajor;
this->update();
}
}
int Widget::getScaleMinor() const
{
return this->scaleMinor;
}
void Widget::setScaleMinor(int scaleMinor)
{
if(scaleMinor >0 && this->scaleMinor != scaleMinor)
{
this->scaleMinor = scaleMinor;
this->update();
}
}
int Widget::getStartAngle() const
{
return this->startAngle;
}
void Widget::setStartAngle(int startAngle)
{
if(this->startAngle != startAngle)
{
this->startAngle = startAngle;
this->update();
}
}
int Widget::getEndAngle() const
{
return this->endAngle;
}
void Widget::setEndAngle(int endAngle)
{
if(this->endAngle != endAngle)
{
this->endAngle = endAngle;
this->update();
}
}
double Widget::getPiePercentStart() const
{
return this->piePercentStart;
}
void Widget::setPiePercentStart(double piePercentStart)
{
if(this->piePercentStart != piePercentStart)
{
this->piePercentStart = piePercentStart;
this->update();
}
}
double Widget::getPiePercentMid() const
{
return this->piePercentMid;
}
void Widget::setPiePercentMid(double piePercentMid)
{
if(this->piePercentMid != piePercentMid)
{
this->piePercentMid = piePercentMid;
this->update();
}
}
double Widget::getPiePercentEnd() const
{
return this->piePercentEnd;
}
void Widget::setPiePercentEnd(double piePercentEnd)
{
if(this->piePercentEnd != piePercentEnd)
{
this->piePercentEnd = piePercentEnd;
this->update();
}
}
QColor Widget::getOuterCircleColor() const
{
return this->outerCircleColor;
}
void Widget::setOuterCircleColor(const QColor &outerCircleColor)
{
if(this->outerCircleColor !=outerCircleColor)
{
this->outerCircleColor = outerCircleColor;
this->update();
}
}
QColor Widget::getInnerCircleColor() const
{
return this->innerCircleColor;
}
void Widget::setInnerCircleColor(const QColor &innerCircleColor)
{
if(this->innerCircleColor !=innerCircleColor)
{
this->innerCircleColor = innerCircleColor;
this->update();
}
}
QColor Widget::getPieColorStart() const
{
return this->pieColorStart;
}
void Widget::setPieColorStart(const QColor &pieColorStart)
{
if(this->pieColorStart != pieColorStart)
{
this->pieColorStart = pieColorStart;
this->update();
}
}
QColor Widget::getPieColorMid() const
{
return this->pieColorMid;
}
void Widget::setPieColorMid(const QColor &pieColorMid)
{
if(this->pieColorMid != pieColorMid)
{
this->pieColorMid = pieColorMid;
this->update();
}
}
QColor Widget::getPieColorEnd() const
{
return this->pieColorEnd;
}
void Widget::setPieColorEnd(const QColor &pieColorEnd)
{
if(this->pieColorEnd != pieColorEnd)
{
this->pieColorEnd = pieColorEnd;
this->update();
}
}
QColor Widget::getCoverCircleColor() const
{
return this->coverCircleColor;
}
void Widget::setCoverCircleColor(const QColor &coverCircleColor)
{
if(this->coverCircleColor != coverCircleColor)
{
this->coverCircleColor = coverCircleColor;
this->update();
}
}
QColor Widget::getScaleColor() const
{
return this->scaleColor;
}
void Widget::setScaleColor(const QColor &scaleColor)
{
if(this->scaleColor != scaleColor)
{
this->scaleColor = scaleColor;
this->update();
}
}
QColor Widget::getPointerColor() const
{
return this->pointerColor;
}
void Widget::setPointerColor(const QColor &pointerColor)
{
if(this->pointerColor != pointerColor)
{
this->pointerColor = pointerColor;
this->update();
}
}
QColor Widget::getCenterCircleColor() const
{
return this->centerCircleColor;
}
void Widget::setCenterCircleColor(const QColor ¢erCircleColor)
{
if(this->centerCircleColor != centerCircleColor)
{
this->centerCircleColor = centerCircleColor;
this->update();
}
}
QColor Widget::getTextColor() const
{
return this->textColor;
}
void Widget::setTextColor(const QColor &textColor)
{
if(this->textColor != textColor)
{
this->textColor = textColor;
this->update();
}
}
bool Widget::getShowOverlay() const
{
return this->showOverlay;
}
void Widget::setShowOverlay(bool showOverlay)
{
if(this->showOverlay !=showOverlay)
{
this->showOverlay = showOverlay;
this->update();
}
}
QColor Widget::getOverlayColor() const
{
return this->overlayColor;
}
void Widget::setOverlayColor(const QColor &overlayColor)
{
if(this->overlayColor != overlayColor)
{
this->overlayColor = overlayColor;
this->update();
}
}
int Widget::getCircleWidth() const
{
return this->circleWidth;
}
void Widget::setCircleWidth(int circleWidth)
{
if(this->circleWidth !=circleWidth)
{
this->circleWidth = circleWidth;
this->update();
}
}
Widget::PieStyle Widget::getPieStyle() const
{
return this->pieStyle;
}
void Widget::setPieStyle(const PieStyle &pieStyle)
{
if(this->pieStyle !=pieStyle)
{
this->pieStyle = pieStyle;
this->update();
}
}
Widget::PointerStyle Widget::getPointerStyle() const
{
return this->pointerStyle;
}
void Widget::setPointerStyle(const PointerStyle &pointerStyle)
{
if(this->pointerStyle != pointerStyle)
{
this->pointerStyle = pointerStyle;
this->update();
}
}