QT控件大全四QMeter
来源:互联网 发布:淘宝网址微信转换 编辑:程序博客网 时间:2024/04/28 20:37
效果如下:
核心代码:
#ifndef QMETER_H#define QMETER_H#include <Qt>#include <QWidget>#include <QPropertyAnimation>class QColor;class QMeter : public QWidget{ Q_OBJECTQ_ENUMS(errorCode);Q_PROPERTY(double value READ value WRITE setValue);Q_PROPERTY(double minValue READ minValue WRITE setMinValue);Q_PROPERTY(double maxValue READ maxValue WRITE setMaxValue);Q_PROPERTY(double threshold READ threshold WRITE setThreshold);Q_PROPERTY(int precision READ precision WRITE setPrecision); Q_PROPERTY(int precisionNumeric READ precisionNumeric WRITE setPrecisionNumeric);Q_PROPERTY(QString units READ units WRITE setUnits); Q_PROPERTY(QString label READ label WRITE setLabel); Q_PROPERTY(int steps READ steps WRITE setSteps);Q_PROPERTY(double startAngle READ startAngle WRITE setStartAngle);Q_PROPERTY(double endAngle READ endAngle WRITE setEndAngle);Q_PROPERTY(QColor foreground READ foreground WRITE setForeground);Q_PROPERTY(QColor background READ background WRITE setBackground);Q_PROPERTY(bool enableThreshold READ enableThreshold WRITE setThresholdEnabled); Q_PROPERTY(double beginValidValue READ beginValidValue WRITE setBeginValidValue); Q_PROPERTY(double endValidValue READ endValidValue WRITE setEndValidValue); Q_PROPERTY(bool enableValidWindow READ enableValidWindow WRITE setEnableValidWindow); Q_PROPERTY(double beginWarningValue READ beginWarningValue WRITE setBeginWarningValue); Q_PROPERTY(double endWarningValue READ endWarningValue WRITE setEndWarningValue); Q_PROPERTY(bool enableWarningWindow READ enableWarningWindow WRITE setEnableWarningWindow);Q_PROPERTY(bool enableNumericIndicator READ enableNumericIndicator WRITE setNumericIndicatorEnabled);public: enum ErrorCode {MaxValueError=1,MinValueError,ThresholdError,TargetError,PrecisionError,ColorError,UnitsEmpty,OutOfRange}; QMeter(QWidget *parent = 0); double value() const { return m_value; } double minValue() const { return m_minValue; } double maxValue() const { return m_maxValue; } double threshold() const { return m_threshold; } double beginValidValue() const { return m_beginValidValue; } double endValidValue() const { return m_endValidValue; } double beginWarningValue() const { return m_beginWarningValue; } double endWarningValue() const { return m_endWarningValue; } int precision() const { return m_precision; } int precisionNumeric() const { return m_precisionNumeric; } QString units()const { return m_units; } QString label()const { return m_label; } int steps() const { return m_steps; } double startAngle() const { return m_startAngle; } double endAngle() const { return m_endAngle; } QColor foreground() const { return m_foreground; } QColor background() const { return m_background; } bool enableThreshold() const { return m_thresholdEnabled; } bool enableValidWindow() const { return m_enableValidWindow; } bool enableWarningWindow() const { return m_enableWarningWindow; } bool enableNumericIndicator() const { return m_numericIndicatorEnabled; }signals: void errorSignal(int); void thresholdAlarm(bool);public slots:void setValue(double);void setValue(int);void setMinValue(double);void setMinValue(int);void setMaxValue(double);void setMaxValue(int);void setThreshold(double);void setThreshold(int); void setPrecision(int); void setPrecisionNumeric(int); void setUnits(QString); void setLabel(QString);void setSteps(int);void setStartAngle(double);void setEndAngle(double);void setForeground(QColor);void setBackground(QColor); void setThresholdEnabled(bool); void setNumericIndicatorEnabled(bool); void setValueWithSpringEffect(int value); void setBeginValidValue(double); void setEndValidValue(double); void setEnableValidWindow(bool); void setBeginWarningValue(double); void setEndWarningValue(double); void setEnableWarningWindow(bool);protected: double m_value; double m_maxValue, m_minValue; int m_precision; int m_precisionNumeric; void thresholdManager(); void paintEvent(QPaintEvent *event); void drawCrown(QPainter *painter); void drawBackground(QPainter *painter); void drawTicks(QPainter *painter); void drawScale(QPainter *painter); void drawUnits(QPainter *painter); void drawNeedle(QPainter *painter); void drawThresholdLine(QPainter *painter); void drawNumericValue(QPainter *painter); void drawCoverGlass(QPainter *painter); void drawLabel(QPainter *painter); void drawValidWindow(QPainter *painter); void drawWarningWindow(QPainter *painter); QString m_units; QString m_label;int m_steps;double m_startAngle,m_endAngle;double m_threshold; bool m_thresholdFlag; bool m_enableValidWindow; double m_beginValidValue, m_endValidValue; bool m_enableWarningWindow; double m_beginWarningValue, m_endWarningValue;bool m_thresholdEnabled;bool m_numericIndicatorEnabled;QColor m_foreground;QColor m_background; QPropertyAnimation m_valAnimation;};#endif
阅读全文
0 0
- QT控件大全四QMeter
- QT中速度仪表盘控件QMeter的安装方法
- Qt编写自定义控件大全
- QT控件大全一AnalogWidgets
- QT控件大全二VirtualKeyboard
- QT控件大全三QLed
- QT控件大全五QProgressIndicator
- QT控件大全 六 QVUMeter
- QT控件大全 七 QProg
- QT控件大全 八 QNeedleIndicator
- QT控件大全 九 Qnightcharts
- QT控件大全 十 QPower
- QT控件大全 十一 QLock
- QT控件大全 十二 QScale
- QT控件大全 十三 WidgetMarqueeLabel
- QT控件大全 十四 QProgressmeter
- QT控件大全 十五 QPot
- QT控件大全 十五 QOpenChart
- Eclipse常用快捷键
- 0_Linux简介
- Oracle数据库相关知识点复习
- Druid介绍
- Java Collections源码与用法
- QT控件大全四QMeter
- 1071. 小赌怡情(15)
- linux umount命令详解
- 文章标题
- spark scala Long类型范围和
- log4j.properties 详解与配置步骤
- 什么?Sigfox还没入华就要收摊了?
- Leetcode 算法习题 第十四周
- String、StringBuffer与StringBuilder之间区别-复习一下