首页| 论坛| 消息

标题:Qt编写自定义控件57-直方波形图
作者:liudianwu
日期:2019-09-22 09:43
内容:

一、前言
直方波形图控件非原创控件,控件大全中大概有20-30个控件非自己原创,而是参考了网上开源的代码,自己加以整理和完善,新增了插件的代码使得可以直接集成到QtDesigner或者QtCreator中。直方波形图,主要就是将外部传入的坐标集合数据进行渐变过渡的绘制,产生一个动态的过渡效果,将设置的坐标集合重新运算+1变成新的坐标集合来绘制,这样看起来绘制不会很死,而是缓慢的过渡。
二、实现的功能
* 1:可设置最大值
* 2:可设置每次过渡的步长
* 3:可设置item之间的间隔
* 4:可设置渐变的背景颜色
* 5:可设置线条的颜色
三、效果图
.

四、头文件代码
#ifndef WAVELINE_H
#define WAVELINE_H
/**
* 直方波形图控件 作者:feiyangqingyun(QQ:517216493) 2016-11-6
* 1:可设置最大值
* 2:可设置每次过渡的步长
* 3:可设置item之间的间隔
* 4:可设置渐变的背景颜色
* 5:可设置线条的颜色
*/
#include
#ifdef quc
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
#include
#else
#include
#endif
class QDESIGNER_WIDGET_EXPORT WaveLine : public QWidget
#else
class WaveLine : public QWidget
#endif
{
Q_OBJECT
Q_PROPERTY(int maxValue READ getMaxValue WRITE setMaxValue)
Q_PROPERTY(int step READ getStep WRITE setStep)
Q_PROPERTY(int space READ getSpace WRITE setSpace)
Q_PROPERTY(QColor bgColorStart READ getBgColorStart WRITE setBgColorStart)
Q_PROPERTY(QColor bgColorEnd READ getBgColorEnd WRITE setBgColorEnd)
Q_PROPERTY(QColor lineColor READ getLineColor WRITE setLineColor)
public:
explicit WaveLine(QWidget *parent = 0);
~WaveLine();
protected:
void paintEvent(QPaintEvent *);
void drawBg(QPainter *painter);
&nbs ..

回复 发表
主题 版块