Qt QChart 创建图表的实现方法

本文主要介绍了Qt QChart 创建图表,分享给大家,也给自己留个笔记,废话不多说,具体如下:

效果

流程

代码

1. 饼图

// 保存多个扇形
	QList<QPieSlice *> slices;
	for (int i = 1; i <= 10; ++i)
	{
		// 创建一个扇形
		QPieSlice * slice = new QPieSlice(QString::number(i),i);
		slices << slice;
	}
	// 创建一个饼图系列
	QPieSeries * pieSeries = new QPieSeries;
	// 当鼠标悬浮时设置标签可见,设置饼图扇形分离
	QObject::connect(pieSeries,&QPieSeries::hovered
		, [](QPieSlice *slice, bool state) {
		slice->setLabelVisible(state);
		slice->setExploded(state);
	});
	// 将所有扇形所加到饼图中
	pieSeries->append(slices);

	// 创建一个图表
	QChart * chart = new QChart;
	// 设置标题
	chart->setTitle(QStringLiteral("饼图"));
	// 设置动画
	chart->setAnimationOptions(QChart::AllAnimations);
	// 设置图表的系列
	chart->addSeries(pieSeries);

	// 创建图表视图,显示图表
 pView = new QChartView(chart);
	// 设置抗锯齿
	pView->setRenderHint(QPainter::Antialiasing);

	// 添加图表视图到布局
 QVBoxLayout *layout = new QVBoxLayout(this);
 layout->addWidget(pView);

2. 柱图

// 保存柱集合
	QList<QBarSet *> sets;
	for (int i = 1; i <= 5; ++i)
	{
		// 创建一个柱集合
		QBarSet * set = new QBarSet(QString("set").append(QString::number(i)));
		QList<qreal> values;
		for (int j = 1; j <= 5; ++j)
		{
			values << qrand()%100;
			qDebug() << values;
		}
		set->append(values);
		sets << set;
	}
	// 创建一个柱图系列
	QBarSeries * barSeries = new QBarSeries;
	// 添加柱集合
	barSeries->append(sets);

	QChart * chart = new QChart;
	chart->setTitle(QStringLiteral("柱状图"));
	chart->setAnimationOptions(QChart::AllAnimations);
	chart->addSeries(barSeries);

	pView = new QChartView(chart);
	pView->setRenderHint(QPainter::Antialiasing);

	QVBoxLayout *layout = new QVBoxLayout(this);
	layout->addWidget(pView);

3. 折/曲线图

// 创建并保存点信息
	QList<QPointF> points;
	points << QPointF(0, -1) << QPointF(2, 2) << QPointF(3, 5) << QPointF(5, -5)
		<< QPointF(6, 0) << QPointF(7, 3);

	// 创建线图系列
	QLineSeries * lineSeries = new QLineSeries;
	// 曲线
	//QSplineSeries * lineSeries = new QSplineSeries;

	// 追加点
	lineSeries->append(points);

	QChart * chart = new QChart;
	chart->setTitle(QStringLiteral("线图"));
	chart->setAnimationOptions(QChart::AllAnimations);
	chart->addSeries(lineSeries);

	pView = new QChartView(chart);
	pView->setRenderHint(QPainter::Antialiasing);

	QVBoxLayout *layout = new QVBoxLayout(this);
	layout->addWidget(pView);

4. 区域图

QList<QPointF> pointsLower;
	pointsLower << QPointF(0, -1) << QPointF(2, 2) << QPointF(3, 5) << QPointF(5, -5)
		<< QPointF(6, 0) << QPointF(7, 3);
	// 创建一条线
	QLineSeries * lineSeriesLower = new QLineSeries;
	lineSeriesLower->append(pointsLower);

	QList<QPointF> pointsUpper;
	pointsUpper << QPointF(0, -1) << QPointF(2, 4) << QPointF(3, 3) << QPointF(5, 3)
		<< QPointF(6, 1) << QPointF(7, 5);
	// 创建另一条线
	QLineSeries * lineSeriesUpper = new QLineSeries;
	lineSeriesUpper->append(pointsUpper);

	// 两条线组成面
	QAreaSeries * areaSeries = new QAreaSeries(lineSeriesLower, lineSeriesUpper);

	QChart * chart = new QChart;
	chart->setTitle(QStringLiteral("区域图"));
	chart->setAnimationOptions(QChart::AllAnimations);
	chart->addSeries(areaSeries);

	pView = new QChartView(chart);
	pView->setRenderHint(QPainter::Antialiasing);

	QVBoxLayout *layout = new QVBoxLayout(this);
	layout->addWidget(pView);

到此这篇关于Qt QChart 创建图表的实现方法的文章就介绍到这了,更多相关Qt QChart 创建图表 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Qt图形图像开发曲线图表模块QChart库缩放/平移详细方法与实例

    1.使用QChartView来缩放 (1)用鼠标框选一个矩形,把图放大到这个矩形 QChartView::setRubberBand(QChartView::RectangleRubberBand);//XY方向同时放大到鼠标画出的矩形大小(也可以设置为只放大X轴或Y轴) (2)setRubberBand函数同时也能使鼠标右键,具备缩小图的功能. 2.使用Qchart来平移和缩放 QChart::scroll(-10, 5);//整体平移(-10, 5),两个参数分别为Δx和Δy QChart:

  • Qt图形图像开发之曲线图表模块QChart库读取/设置X轴的显示区间

    设置初始的显示的区间,常用的有两种方法 (1)自动 lineseries = new QLineSeries();//声明折线数据集 lineseries->append(4, 10); //填充数据集 *lineseries << QPointF(13, 5) << QPointF(17, 6); lineChart = new QChart();//创建图表 lineChart->addSeries(lineseries); // 将 数据集 添加至图表中 line

  • Qt图形图像开发之曲线图表模块QChart库坐标轴和数据不对应、密集的散点图无法显示问题解决方法

    QChart坐标轴和数据不对应问题描述: lineseries->append(4, 10); lineseries->append(5, 8); Chart->addSeries(lineseries); // 将 series 添加至图表中 axisX->setRange(0, 15);//设置X的显示范围 axisY->setRange(-20, 20); lineChart->setAxisX(axisX);//把轴添加到图表中 lineChart->se

  • Qt图形图像开发之曲线图表库QtChart编译安装详细方法与使用实例

    Qt曲线图表库QtChart简介 Qt的线性绘图控件有大名鼎鼎的Qwt,ChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart.长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可以使用,但Qt5.7之后将开放其权限,可参见:Qt 5.7 亮瞎眼的更新.下面将介绍如何安装QtChart并进行简单的绘图. Qt曲线图表库QtChart下载 这里用git下载QtChart,参考Qt Charts 5.7.0 安装教程 Git地址:https://gi

  • Qt图形图像开发曲线图表模块QChart库基本用法、各个类之间的关系说明

    如何编译安装QChart请查看下面文章 Qt图形图像开发之曲线图表库QtChart编译安装详细方法与使用实例 使用Qt曲线图表模块Chart库首先要注意3点: (1)在.pro文件中添加:QT += charts. (2)用到QChart的文件中添加:QT_CHARTS_USE_NAMESPACE,或者:using namespace QtCharts; 在ui界面中拖入一个graphicsView控件,然后右击提升为QChartView类,写提升为的类:QtCharts::QChartView

  • Qt图形图像开发之曲线图表模块QChart库一个chart中显示两条曲线详细方法与实例

    首先要了解QChartView.QChart.QLineSeries.QValueAxis的实体之间的关系,例如一个QChartView中可以包含几个QValueAxis?这些可参考 Qt图形图像开发曲线图表模块QChart库基本用法.各个类之间的关系说明 每个chart可以包含多个QLineSeries数据系列,每个QLineSeries数据系列又包含了2个QValueAxis数值轴或QDateTimeAxis时间轴. 那么这个chart中的多个数据系列,一起显示在同一个chart中,会是什么

  • Qt QChart 创建图表的实现方法

    本文主要介绍了Qt QChart 创建图表,分享给大家,也给自己留个笔记,废话不多说,具体如下: 效果 流程 代码 1. 饼图 // 保存多个扇形 QList<QPieSlice *> slices; for (int i = 1; i <= 10; ++i) { // 创建一个扇形 QPieSlice * slice = new QPieSlice(QString::number(i),i); slices << slice; } // 创建一个饼图系列 QPieSerie

  • python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例

    在下面这3篇文章中我们给出了手工输入代码的信号与槽的使用方法,因为采用这种方法介绍时,会简单一些,如果使用Qt Designer来介绍这些功能,那么任何一个简单的功能都会使用xxxx.ui xxxx.py call_xxxx.py三个文件 来实现,这样内容会显得很乱 python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例 python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例 python GUI库图形界面开发之PyQt5信号与槽的高级

  • Qt Design Studio创建工程的实现方法

    目录 Creating Projects 使用项目向导 向项目中添加文件 Creating Projects Qt Design Studio的主要优势之一是,它允许设计人员和开发人员使用通用的设计.开发.分析和调试工具在不同的开发平台上共享一个项目. 创建项目使您能够: 文件组 包括UI文件(.ui.qml).组件文件(.qml)和资产文件 设置用户界面预览 在Qt Design Studio中设置一个新项目可以通过向导逐步指导您完成项目创建过程.向导模板提示您输入特定类型项目所需的设置,并为

  • Java创建,编辑与删除Excel迷你图表的实现方法

    目录 前言 Java示例代码 1. 创建迷你图表 2. 编辑迷你图表 3. 删除迷你图表 前言 迷你图是Excel工作表单元格中表示数据的微型图表.使用迷你图可以非常直观的显示数据变化趋势,突出最大值.最小值,放在数据表格中可起到很好的数据分析效果.本文将通过Java代码示例介绍如何在Excel中创建迷你图表,以及编辑和删除表格中的迷你图表. 程序运行环境:Java.IDEA.jdk1.8.0.无需安装Microsoft Excel 使用类库:Free Spire.XLS for Java(免费

  • 详解C/C++ QT QChart 绘制组件应用

    QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart的二次封装版. 在使用绘图模块时需要在pro文件中包含QT += charts来引入绘图类库. 然后还需在头文件中定义QT_CHARTS_USE_NAMESPACE宏,这样才可以正常的使用绘图功能. 一般情况下我们会在mainwindows.h头文件中增加如下代码段. #include <QMainWindow>

  • C/C++ Qt QChart绘图组件的具体使用

    QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart的二次封装版. 在使用绘图模块时需要在pro文件中包含QT += charts来引入绘图类库. 然后还需在头文件中定义QT_CHARTS_USE_NAMESPACE宏,这样才可以正常的使用绘图功能. 一般情况下我们会在mainwindows.h头文件中增加如下代码段. #include <QMainWindow>

  • C# 添加、修改以及删除Excel迷你图表的实现方法

    Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for .NET 原Excel图表: 一.添加迷你图表(折线图.柱形图.盈亏图) 1.添加命名空间 using System; using Spire.Xls; using System.Drawing; 2.主要代码 //创建一个Workbook类对象并加载Excel文档 Workbook workboo

  • vue使用echarts图表的详细方法

    本文为大家分享了vue使用echarts图表的方法,供大家参考,具体内容如下 该示例使用 vue-cli  脚手架搭建 安装echarts依赖 npm install echarts -S 或者使用国内的淘宝镜像: 安装 npm install -g cnpm --registry=https://registry.npm.taobao.org 使用 cnpm install echarts -S 创建图表 全局引入 main.js // 引入echarts import echarts fro

  • Qt基础开发之Qt多线程类QThread与Qt定时器类QTimer的详细方法与实例

    Qt多线程 我们之前的程序都是单线程运行,接下来我们开始引入多线程.就相当于以前的一个人在工作,现在多个人一起工作. Qt中非常有必要使用多线程,这是因为,Qt应用是事件驱动型的,一旦某个事件处理函数处理时间过久,就会造成其它的事件得不到及时处理. Qt中使用QThread来管理线程,一个QThread对象,就是一个线程.QThread对象也有消息循序exec()函数,用来处理自己这个线程的事件. Qt实现多线程有两种方式 ​1.Qt第一种创建线程方式 首先要继承QThread 重写虚函数QTh

随机推荐