1.效果

2.描述

在安装Qt的时候必须勾选QChart模块,默认安装是不带这个模块的,如果没有需要重新安装。
工程下载链接 下载地址

3.代码

CHistogram.cpp

#include "CHistogram.h"CHistogram::CHistogram(QWidget *parent):QFrame(parent)
{initUI();
}void CHistogram::refreshUI(QVector<int> vecData)
{if(vecData.isEmpty())return ;vecData.resize(7);for(int i = 0; i < vecData.size(); i++){m_pBarSet->replace(i,vecData.at(i));}
}void CHistogram::initUI()
{this->resize(600,400);QFont fontText("SimHei");fontText.setPixelSize(12);QBarSeries *pBarSeries = new QBarSeries();pBarSeries->setLabelsVisible(true);pBarSeries->setLabelsFormat("@valueh");pBarSeries->setLabelsPosition(QAbstractBarSeries::LabelsInsideEnd);connect(pBarSeries,&QBarSeries::hovered,[=](bool bStatus,int index,QBarSet *pBarSet){ //鼠标悬浮柱状条Q_UNUSED(bStatus)Q_UNUSED(index)Q_UNUSED(pBarSet)});m_pBarSet = new QBarSet("运行时间");m_pBarSet->setBrush(QBrush("#dd5da4f2"));m_pBarSet->setBorderColor("#dd5da4f2");m_pBarSet->setLabelFont(fontText);*m_pBarSet<< 5 << 7 << 8 << 12 << 20 << 24 << 16;pBarSeries->append(m_pBarSet);/*X轴设置*/QBarCategoryAxis *pAxisX = new QBarCategoryAxis();QStringList strListDate;for(int i = 6;i >= 0; i--) {strListDate.append(QDate::currentDate().addDays(-i).toString("M.dd"));}pAxisX->append(strListDate);pAxisX->setGridLineColor("transparent");    //参考线颜色透明pAxisX->setLinePenColor("#5da4f2");         //标尺 线颜色pAxisX->setLabelsColor("#5da4f2");          //文本颜色pAxisX->setLabelsFont(fontText);/*Y轴设置*/QValueAxis *pAxisY = new QValueAxis();pAxisY->setTickCount(13); //包含0那一条横线pAxisY->setLabelFormat("%dh");pAxisY->setRange(0,24);pAxisY->setGridLineColor("#5da4f2");pAxisY->setLinePenColor("#5da4f2"); //标尺 线颜色pAxisY->setLabelsColor("#5da4f2");  //文本颜色pAxisY->setLabelsFont(fontText);QChart *pChart = new QChart();pChart->addSeries(pBarSeries);pChart->setTitle("一周运行时间");pChart->setAnimationOptions(QChart::SeriesAnimations);pChart->createDefaultAxes();pChart->setAxisX(pAxisX);pChart->setAxisY(pAxisY);pChart->legend()->setVisible(true); //设置图例为显示状态pChart->legend()->setAlignment(Qt::AlignBottom);//设置图例的显示位置在底部QChartView *pChartView = new QChartView(pChart,this);pChartView->setRenderHint(QPainter::Antialiasing);pChartView->resize(this->size());}

CHistogram.h

#ifndef CHISTOGRAM_H
#define CHISTOGRAM_H#include <QFrame>
#include <QChart>
#include <QBarSet>
#include <QChart>
#include <QBarSeries>
#include <QBarCategoryAxis>
#include <QChartView>
#include <QTime>
#include <QDebug>
#include <QStackedBarSeries>
#include <QValueAxis>
#include <QLabel>
#include <QCursor>
using namespace QtCharts;
class CHistogram : public QFrame
{Q_OBJECT
public:explicit CHistogram(QWidget *parent = 0);void refreshUI(QVector<int> vecData);
private:void initUI();private:QBarSet *m_pBarSet = nullptr;
};#endif // CHISTOGRAM_H

4.测试代码

Dialog.cpp

#include "Dialog.h"
#include <QDate>Dialog::Dialog(QWidget *parent): QDialog(parent)
{m_pH = new CHistogram(this);this->startTimer(2000);
}Dialog::~Dialog()
{}void Dialog::timerEvent(QTimerEvent *event)
{static bool bIsa;bIsa = !bIsa;QVector<int> vec1;vec1<<1<<23<<3<<14<<12<<6<<7;QVector<int> vec2;vec2<<17<<6<<5<<18<<3<<12<<1;if(bIsa)m_pH->refreshUI(vec1);elsem_pH->refreshUI(vec2);
}

Dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QTimerEvent>
#include "CHistogram.h"class Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = 0);~Dialog();void timerEvent(QTimerEvent *event);CHistogram *m_pH;
};#endif // DIALOG_H

Qt Chart柱状图实现相关推荐

  1. Frappe Chart ——柱状图

    Frappe Chart --柱状图 柱状图学习 1.请使用互联网上的图形工具(推荐: Frappe Chart)与以下中国历年GDP数据与世界主要各国军费预算.分别产生Bar chart,如下图所示 ...

  2. QT chart的颜色设置记录(小白,勿喷)

    1.设置柱状图内数据集分类的字体颜色 QChart* mChart = new QChart(); //legend 是数据集分类,chart可操作,不可单独分离 mChart->legend( ...

  3. Qt绘制柱状图BarChart、饼状图PieChart、堆叠柱状图StackedChart、散点图ScatterChart

    一.效果展示 二.工程中添加charts模块 三.在工程布局文件中放一块Graphics View,然后右键提升为QChartView,每个Tab都一样.如下图 四.更改控件名,如下图所示 五.Mai ...

  4. qt chart 如何使网格填满整个窗口_Qt实现截屏的关键函数

    截屏功能就是将截屏时刻的屏幕画面保存为图片.所以截屏的关键就在于如何获取屏幕的内容,幸运的是Qt为我们提供了这样的接口.它就是QScreen类的grabWindow函数.函数声明如图: 函数返回的就是 ...

  5. chartxy 柱状图_关于Chart柱状图的使用,有问题

    @*滴血*: 我是看了你的问题刚做的,过程就是: 1.界面上放个Chart,设置为图表类型为Column,把图例设为"天数":没做其他任何设置. 2.简单写了代码如下(代码无任何规 ...

  6. Qt Charts基本组成

    简述 Qt Charts API 构建在 Qt Graphics View 框架之上,可以使用 QChart 类将图表显示为 QGraphicsWidget.但还有一个方便的类 - QChartVie ...

  7. Qt:QtCharts绘制图表实时采集温度

    目录 Qt Charts介绍 视图-QChartView 图表-QChart 系列-QAbstractSeries 坐标轴-QAbstractAxis 图例-Legend 创建GUI界面 界面布局 完 ...

  8. html5 canvas图表,Chart.js基于Canvas画布的HTML5统计图表库 - 资源分享

    Chart.js 是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库.可以绘制柱状图.热点图.曲线图等,使用HTML5中的Canvas画布,支持原生的和jQuery的调用方法. 特点 6种图表 ...

  9. Web在jsp页面中生成柱状图,折线图,饼状图

    一.前言 在实际开发过程中,柱状图,折线图,饼状图在一些OA,ERP中是非常常见的功能,特别是需求方是业务型,数据分析型公司,下面的例子简单实现了饼状图,柱状图,折线图在jsp中生成.(ps:新手上路 ...

  10. itextpdf 添加折线图、饼图、柱状图

    itextpdf 添加折线图.饼图.柱状图 时隔三年,又要对PDF一顿改版了,此次改版加入了饼图.折线图.柱状图等图形可视化. 文章目录 itextpdf 添加折线图.饼图.柱状图 依赖包 效果图 步 ...

最新文章

  1. 链表-删除链表中的重复元素
  2. 摆放家具-定义房子类
  3. leetcode:203. 移除链表元素(两种方法)
  4. 2020数字营销白皮书
  5. 2014年图灵奖_2014年人民选择奖:投下您的一票
  6. 观点:比特币新一轮突破“即将到来”
  7. vue组件(将页面公用的头部组件化)
  8. php数据表创建命令代码,MySQL创建和删除数据表的命令及语法详解
  9. CSS实现标题样式(自用笔记)
  10. PCL:getCircumcircleRadius ❤️ 计算三角形外接圆半径
  11. 苹果的傲慢与堕落,从iPhone XS的发布谈起!
  12. P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
  13. SLM6500充电板的电磁干扰EMI措施
  14. 高通MDM平台开发入门
  15. 静态代码分析工具汇总
  16. 高通 android笔记本电脑,联想将推高端安卓平板 搭载高通骁龙870处理器
  17. Firebird数据库及工具
  18. 微信小程序云开发——模板讲解之云函数
  19. 基于C语言Win32API窗口实现的物流配送信息管理系统
  20. c语言使用virtual类型,c语言virtual关键字

热门文章

  1. 优化大中型企业Internet连接
  2. json数据交互——@RequestBody与@ResponseBody
  3. html5怎么联网,HTML5--离线web应用
  4. oracle ora-27544,数据库启动后,大量报错ORA-27300
  5. jar包导入本地maven仓库
  6. jquery中ajax的post方法,jQuery中Ajax的get、post等方法详解
  7. 计算机网络管理的应用,计算机网络管理技术及应用
  8. 简单链表实现增删改查(内部类+递归)
  9. 小菜找实习——阿里3.25场笔试第一题(矩阵数组最小差值和)
  10. 果园机器人作文开头_【360教育】写作技巧丨写作技巧小学高年级作文最全技巧100条,建议收藏!...