QT编写BarChart直方图
效果图:
代码分段分析
//使用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直方图相关推荐
- Qt编写OpenMP程序--循环测试
第一篇:https://blog.csdn.net/hats8888/article/details/46378281 最近一个客户需要处理大量股票数据,并跑到数据库里,原来的程序导入数据到数据库需要 ...
- Qt编写可换肤的中文双拼汉字输入法
时间过得真快,不知不觉已到2015年,农历春节一眨眼就过去了,端正状态收拾心情整装待发出发. 曾经有段时间,我有一个很执着的梦想,我要导演出一部空前绝后的巨幕.不过现实无情地碾碎我的梦想,也同时将我推 ...
- qt编写activex_Qt中使用ActiveX(一)
由于最近需要使用ActiveX,一般来说可以使用微软提供的MFC或者ATL框架来开发,由于我个人对这部分内容不是很熟悉,好在Qt也提供对于ActiveX的支持.本文主要记录个人学习ActiveX的一些 ...
- 【转】Qt编写串口通信程序全程图文讲解
Qt编写串口通信程序全程图文讲解 本文章原创于www.yafeilinux.com 转载请注明出处. (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或 ...
- Qt编写自定义控件29-颜色选取面板
一.前言 这个控件主要是模仿QColorDialog对话框中的颜色选取面板,提供一个十字形状的标识器,鼠标按下开始选取颜色,移动到哪就选择该处的颜色值,对应右侧颜色条放大显示,本控件的难点就是如何绘制 ...
- php地图路径规划,Qt编写地图综合应用21-路径规划
Qt编写地图综合应用21-路径规划 ## 一.前言 近期重新将这个地图综合应用进行大幅度的改进更新升级,包括使用示例也做了非常多的改进和调整,其中就包括路径规划功能,之前只是调用了百度地图的JS交互接 ...
- windows下如何使用QT编写dll程序 .
Windows 下如何使用 QT 编写 dll 程序 因为 QT 必须有调用 QApplication 的 exec 方法,这样才能产生消息循环, QT 的程序才可以运行.所以说如果我们使用了 QT ...
- Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)...
一.自定义控件大全 (一).控件介绍 超过150个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的 ...
- 【嵌入式开发】监测系统——用QT编写下位机
[嵌入式开发]监测系统--用QT编写嵌入式下位机界面 一.登陆界面 二.自定义弹出式小键盘 2.1设计思路 2.2具体实现 三.通讯协议 四.检测界面 五.历史信息显示 六.总结 本文为嵌入式课程的课 ...
- Qt编写安防视频监控系统18-云台控制
一.前言 云台控制是视频监控系统中必备的一个功能,对球机进行上下左右的移动,还有焦距的控制,其实核心就是控制XYZ三个坐标轴,为了开发这个模块,特意研究了各种云台控制的方法和开源库比如soap,有些厂 ...
最新文章
- Ubuntu系统查看文件夹目录
- 演练:创建和使用静态库 (C++)
- 《文献管理与信息分析》课程学习笔记
- 21-while里的break简单用法
- 【H.264/AVC视频编解码技术】序章【编码的前世今生】
- python打字效果_Python学习之旅:用Python制作一个打字训练小工具
- linux内核模块是什么,Linux内核模块介绍,使用Linux模块的优点
- 前端:CheckBox事件函数js
- linux持续检测进程脚本,用于检测进程的shell脚本代码小结
- Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】
- 光滑曲线_使用Python实现贝塞尔曲线连接多点形成光滑曲线
- Redis 发布订阅原理以及springboo中RedisTemplate集成
- API接口使用方法(封装好的电商平台)
- 小木虫网站登录返回404
- Linux下Mysql 5.7的安装及远程连接配置
- Eclipse – 建構 Android 的開發環境
- 【LOJ】#3086. 「GXOI / GZOI2019」逼死强迫症
- 【bug】sqlite plus Error parsing time stamp
- 第一章 基础 (续 在IIS中寄宿服务)
- unity Text文字淡入效果
热门文章
- PX4自主设置飞行模式
- C#盛金公式求解一元三次方程
- Android微信app支付
- Ubuntu 20.04桌面文件夹图标消失及文件系统无法打开
- 在知网上找不到的英文文献应该去哪里找?
- BP,RNN 和 LSTM暨《Supervised Sequence Labelling with Recurrent Neural Networks-2012》阅读笔记
- 校友故事|我在科大感受理工科“严谨的浪漫主义”
- spring报错→UnexpectedRollbackException: Transaction silently rolled back becaus
- Python3.6支付宝账单爬虫
- 对称密码 -- 工作模式总结 GCM CCM OCB