标题:Qt编写自定义控件5-柱状温度计
作者:liudianwu
日期:2019-04-23 09:00
内容:
前言
柱状温度计控件,可能是很多人练手控件之一,基本上都是垂直方向展示,底部一个水银柱,中间刻度尺,刻度尺可以在左侧右侧或者两侧都有,自适应分辨率改动,有时候为了美观效果,可能还会整个定时器来实现动画效果,开启动画效果的缺点就是CPU占用会比较高,前阵子有个好友(贾文涛-涛哥)向我推荐了一个opengl绘制的开源东西,QNanoPainter,东西是个好东西,我个人的理解是直接封装了opengl绘制的qpainter,可以使得绘制全部走GPU,这样就可以大大减轻CPU的负担,非常方便,我自己试了下,方法和绘制逻辑和qpainter有点不一样,暂时没有将所有控件改成QNanoPainter版本,以后看情况吧。
实现的功能
* 1:可设置精确度(小数点后几位)和间距
* 2:可设置背景色/柱状颜色/线条颜色
* 3:可设置长线条步长及短线条步长
* 4:可启用动画及动画步长
* 5:可设置范围值
* 6:支持负数刻度值
* 7:支持任意窗体大小缩放
* 8:可设置柱状条位置 左侧 居中 右侧
* 9:可设置刻度尺位置 无 左侧 右侧 两侧
* 10:可设置用户设定目标值
效果图
头文件代码
#ifndef RULERTEMP_H
#define RULERTEMP_H
/**
* 柱状温度计控件 作者:feiyangqingyun(QQ:517216493) 2016-11-4
* 1:可设置精确度(小数点后几位)和间距
* 2:可设置背景色/柱状颜色/线条颜色
* 3:可设置长线条步长及短线条步长
* 4:可启用动画及动画步长
* 5:可设置范围值
* 6:支持负数刻度值
* 7:支持任意窗体大小缩放
* 8:可设置柱状条位置 左侧 居中 右侧
* 9:可设置刻度尺位置 无 左侧 右侧 两侧
* 10:可设置用户设定目标值
*/
#include
#ifdef quc
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
#include
#else
#include
#endif
class QDESIGNER_WIDGET_EXPORT RulerTemp : public QWidget
#else
class RulerTemp : public QWidget
#endif
{
Q_OBJECT
Q_ENUMS(BarPosition)
Q_ENUMS(TickPosition)
Q_PROPERTY(double minValue READ getMinValue WRITE setMinValue)
Q_PROPERTY(double maxValue READ getMaxValue WRITE setMaxValue)
..
#1 [九重水 04-23 09:19]
看来老刘铁了心要做卖自定义控件的生意了。加油吧。不过,记得上交广告费。
#2 [305750665 04-23 11:41]
顶起,顶起
#3 [crazy 04-24 08:39]
我顶