效果图:

代码分段分析

//使用QBarSet创建五个人物对象,并设置每个人每个月掉头发的数量

    //本示例要展示五个人在每个月的某项数据,比如每个月掉多少头发//创建要展示的对象,本示例中是姓名,并设置不同对象在每个月的数据QBarSet *set0 = new QBarSet("Jane");QBarSet *set1 = new QBarSet("John");QBarSet *set2 = new QBarSet("Axel");QBarSet *set3 = new QBarSet("Mary");QBarSet *set4 = new QBarSet("Sama");*set0<<1<<2<<3<<4<<5<<6;*set1<<3<<7<<6<<5<<5<<2;*set2<<2<<8<<1<<3<<6<<5;*set3<<1<<3<<5<<7<<1<<6;*set4<<4<<3<<3<<6<<7<<2;

//创建一个序列对象,并将上面的数据添加到序列中

    QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);series->append(set2);series->append(set3);series->append(set4);

//创建一个QChart类的对象chart,并将series对象加入到chart中,并设置标题和动画

    QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("simple barchart example");//标题chart->setAnimationOptions(QChart::SeriesAnimations);//动画

创建坐标

    //首先创建一个字符串列表,作为横坐标QStringList *categories = new QStringList();*categories<<"Jane"<<"Feb"<<"Mar"<<"Apr"<<"May"<<"Jun";//创建一个类别轴对象QBarCategoryAxis *axis = new QBarCategoryAxis();axis->append(*categories);//添加横坐标,月份chart->createDefaultAxes();//设置默认坐标轴,虽然后面的设置会覆盖默认坐标轴,但是也要在后面设置之前进行初始设置chart->setAxisX(axis,series);//将类别轴对象(横坐标月)和序列对象(每个月的数据)作为参数,设置X轴。

//设置图例

    chart->legend()->setVisible(true);//图例可见chart->legend()->setAlignment(Qt::AlignBottom);//将图例放在表底

//将图表放到view中,并显示

    QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);//抗锯齿this->setCentralWidget(chartView);

整体代码

#include <QChart>
#include <QLineSeries>
#include <QChartView>
#include <QValueAxis>
#include <QBarSet>
#include <QBarSeries>
#include <QBarCategoryAxis>
#include "mainwindow.h"
#include "ui_mainwindow.h"//此句必备
QT_CHARTS_USE_NAMESPACEMainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//Creating Bar Charts//本示例要展示五个人在每个月的某项数据,比如每个月掉多少头发//创建要展示的对象,本示例中是姓名,并设置不同对象在每个月的数据QBarSet *set0 = new QBarSet("Jane");QBarSet *set1 = new QBarSet("John");QBarSet *set2 = new QBarSet("Axel");QBarSet *set3 = new QBarSet("Mary");QBarSet *set4 = new QBarSet("Sama");*set0<<1<<2<<3<<4<<5<<6;*set1<<3<<7<<6<<5<<5<<2;*set2<<2<<8<<1<<3<<6<<5;*set3<<1<<3<<5<<7<<1<<6;*set4<<4<<3<<3<<6<<7<<2;//创建一个序列对象,并将上面的数据添加到序列中QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);series->append(set2);series->append(set3);series->append(set4);//创建一个QChart类的对象chart,并将series对象加入到chart中QChart *chart = new QChart();chart->addSeries(series);//设置标题和动画chart->setTitle("simple chart example");chart->setAnimationOptions(QChart::SeriesAnimations);//设置动画//创建坐标//首先创建一个字符串列表,作为横坐标QStringList *categories = new QStringList();*categories<<"Jane"<<"Feb"<<"Mar"<<"Apr"<<"May"<<"Jun";//创建一个类别轴对象QBarCategoryAxis *axis = new QBarCategoryAxis();axis->append(*categories);//添加横坐标,月份chart->createDefaultAxes();//设置默认坐标轴,虽然后面的设置会覆盖默认坐标轴,但是也要在后面设置之前进行初始设置chart->setAxisX(axis,series);//将类别轴对象(横坐标月)和序列对象(每个月的数据)作为参数,设置X轴。//设置图例chart->legend()->setVisible(true);//图例可见chart->legend()->setAlignment(Qt::AlignBottom);//将图例放在表底//将图标放到view中QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);//抗锯齿this->setCentralWidget(chartView);
}MainWindow::~MainWindow()
{delete ui;
}

QT编写BarChart直方图相关推荐

  1. Qt编写OpenMP程序--循环测试

    第一篇:https://blog.csdn.net/hats8888/article/details/46378281 最近一个客户需要处理大量股票数据,并跑到数据库里,原来的程序导入数据到数据库需要 ...

  2. Qt编写可换肤的中文双拼汉字输入法

    时间过得真快,不知不觉已到2015年,农历春节一眨眼就过去了,端正状态收拾心情整装待发出发. 曾经有段时间,我有一个很执着的梦想,我要导演出一部空前绝后的巨幕.不过现实无情地碾碎我的梦想,也同时将我推 ...

  3. qt编写activex_Qt中使用ActiveX(一)

    由于最近需要使用ActiveX,一般来说可以使用微软提供的MFC或者ATL框架来开发,由于我个人对这部分内容不是很熟悉,好在Qt也提供对于ActiveX的支持.本文主要记录个人学习ActiveX的一些 ...

  4. 【转】Qt编写串口通信程序全程图文讲解

    Qt编写串口通信程序全程图文讲解 本文章原创于www.yafeilinux.com 转载请注明出处. (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或 ...

  5. Qt编写自定义控件29-颜色选取面板

    一.前言 这个控件主要是模仿QColorDialog对话框中的颜色选取面板,提供一个十字形状的标识器,鼠标按下开始选取颜色,移动到哪就选择该处的颜色值,对应右侧颜色条放大显示,本控件的难点就是如何绘制 ...

  6. php地图路径规划,Qt编写地图综合应用21-路径规划

    Qt编写地图综合应用21-路径规划 ## 一.前言 近期重新将这个地图综合应用进行大幅度的改进更新升级,包括使用示例也做了非常多的改进和调整,其中就包括路径规划功能,之前只是调用了百度地图的JS交互接 ...

  7. windows下如何使用QT编写dll程序 .

    Windows 下如何使用 QT 编写 dll 程序 因为 QT 必须有调用 QApplication 的 exec 方法,这样才能产生消息循环, QT 的程序才可以运行.所以说如果我们使用了 QT ...

  8. Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)...

    一.自定义控件大全 (一).控件介绍 超过150个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的 ...

  9. 【嵌入式开发】监测系统——用QT编写下位机

    [嵌入式开发]监测系统--用QT编写嵌入式下位机界面 一.登陆界面 二.自定义弹出式小键盘 2.1设计思路 2.2具体实现 三.通讯协议 四.检测界面 五.历史信息显示 六.总结 本文为嵌入式课程的课 ...

  10. Qt编写安防视频监控系统18-云台控制

    一.前言 云台控制是视频监控系统中必备的一个功能,对球机进行上下左右的移动,还有焦距的控制,其实核心就是控制XYZ三个坐标轴,为了开发这个模块,特意研究了各种云台控制的方法和开源库比如soap,有些厂 ...

最新文章

  1. Ubuntu系统查看文件夹目录
  2. 演练:创建和使用静态库 (C++)
  3. 《文献管理与信息分析》课程学习笔记
  4. 21-while里的break简单用法
  5. 【H.264/AVC视频编解码技术】序章【编码的前世今生】
  6. python打字效果_Python学习之旅:用Python制作一个打字训练小工具
  7. linux内核模块是什么,Linux内核模块介绍,使用Linux模块的优点
  8. 前端:CheckBox事件函数js
  9. linux持续检测进程脚本,用于检测进程的shell脚本代码小结
  10. Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】
  11. 光滑曲线_使用Python实现贝塞尔曲线连接多点形成光滑曲线
  12. Redis 发布订阅原理以及springboo中RedisTemplate集成
  13. API接口使用方法(封装好的电商平台)
  14. 小木虫网站登录返回404
  15. Linux下Mysql 5.7的安装及远程连接配置
  16. Eclipse – 建構 Android 的開發環境
  17. 【LOJ】#3086. 「GXOI / GZOI2019」逼死强迫症
  18. 【bug】sqlite plus Error parsing time stamp
  19. 第一章 基础 (续 在IIS中寄宿服务)
  20. unity Text文字淡入效果

热门文章

  1. PX4自主设置飞行模式
  2. C#盛金公式求解一元三次方程
  3. Android微信app支付
  4. Ubuntu 20.04桌面文件夹图标消失及文件系统无法打开
  5. 在知网上找不到的英文文献应该去哪里找?
  6. BP,RNN 和 LSTM暨《Supervised Sequence Labelling with Recurrent Neural Networks-2012》阅读笔记
  7. 校友故事|我在科大感受理工科“严谨的浪漫主义”
  8. spring报错→UnexpectedRollbackException: Transaction silently rolled back becaus
  9. Python3.6支付宝账单爬虫
  10. 对称密码 -- 工作模式总结 GCM CCM OCB