Qt图表类介绍

本文主要介绍QCharts相关的模块及类。

Qt中图表模块有以下几种类型:折线图,样条曲线图,面积图,散点图,条形图,饼图,方块胡须图,蜡烛图,极坐标图。

QCharts的图表框架类似于Qt的图形视图框架;

QChart类似于QGraphicsItem;

而QChartView类似于QGraphicsView;

可以将QChart看作容器,通过QChartView视图类来显示; QChart不需要场景类就能显示,而图形视图框架需要场景类来支撑显示。

使用图标类需要在项目添加charts模块,添加头文件并引入QtCharts的命名空间。

一.QChart 载体类

1.作用

(1)管理图表数据:用于管理图表上的一系列数据集合;

(2)设置图表属性:用于设置图表的标题,主题,动画等样式属性;

(3)管理图表轴:支持添加和管理图表的轴,可以向图表添加丛横轴,设定轴属性和刻度等;

(4)布局和位置控制:可以通过setPlotArea();方法设置图表的绘制区域,设定器大小和位置,或转换坐标;

(5)交互操作:提供一些方法和信号来支持图表的交互操作,如禁启用鼠标,捕获点击事件等;

(6)导出和打印:可以将图表导出为图片,PDF,SVG等格式,并支持打印和复制剪切等操作。

2.方法

(1)addSeries(); 用于将数据系列series添加到图表中;

(2)removeSeries(); 动态移除数据系列,更新图表显示;

(3)removeAllSeries(); 移除所有的数据系列;

(4)setTitle(); 设置图表的标题;

(5)setTheme(); 设置图表的主题;

(6)addAxis(axis, alignment); 添加轴到图表上。添加x轴y轴到图表中,并指定对齐方式(alignment),如左对齐、右对齐等;

(7)axisX()和axisY(); 获取图表中的横轴和纵轴对象,从而进一步定制轴的属性和设置;

(8)setPlotArea(rectangle); 设置图表的绘图区域,定义图表绘图区域的位置和大小,以控制图表中数据的显示范围;

(9)setBackgroundVisible(visible); 设置图表的背景可见性;

(10)setAnimationOptions(options); 设置图表的动画选项,定义图表的动画效果,在图表更新或切换数据时提供更流畅的过渡;

(11)legend(); 获取图表的图例对象,进行图例的设置和操作,比如位置、显示项等;

(12)zoomIn(rectangle); 在指定的矩形区域内进行缩放,可以实现对特定区域的放大显示;

(13)zoomOut(); 恢复图表的缩放级别;

(14)save(filename, format); 将图表保存为文件,如图片、PDF或SVG格式的文件,以便于导出和共享;

(15)createDefaultAxes(); 创建默认的横轴和纵轴, 自动创建横轴和纵轴对象,并添加到图表中,方便快速构建基本的图表。

二.QChartView 视图类

1.作用

(1)显示图表:作为一个独立的部件,专门用于显示图表;

(2)交互功能:用于处理一些常见的如缩放,平移,选择等交互操作;

(3)布局管理:可以通过布局管理器灵活的放置在界面中;

(4)样式定制:可以通过样式表来自定义其外观和样式;

(5)导出打印:提供了导出图表为图片格式或打印图表的功能;

2.方法

(1)chart(); 用于获取QChartView相关联的QChart对象;

(2)setChart(); 设置QChartView关联的QChart对象;

(3)setBackgroundBrush(); 用于设置QChartView的背景刷子(brush),定义图表视图的背景色、渐变或纹理等样式;

(4)setRenderHint(); 用于设置图表渲染时的一些提示选项。通过设置这些选项来优化图表的渲染效果和性能,如抗锯齿、高质量渲染等;

(5)setRubberBand(); 用于启用或禁用橡皮筋选择功能。当启用橡皮筋选择后,用户可以使用鼠标或触摸屏在图表上进行框选,并选择感兴趣的数据区域;

(6)setViewportUpdateMode(); 用于设置视图的更新模式。根据需要选择完整更新或增量更新模式,以控制图表视图的刷新行为;

(7)setInteractive(); 用于启用或禁用图表的交互功能。当启用交互功能后,用户可以使用鼠标或触摸屏进行缩放、平移和选择等操作;

(8)setDragMode(); 用于设置图表的拖动模式。可以选择平移模式或橡皮筋选择模式,以控制鼠标拖动时图表的行为;

(9)grab(); 用于获取图表视图的截图。使用grab()方法将图表视图保存为图片文件或进行其他处理;

(10)update(); 用于手动触发图表视图的更新。通常QChartView会自动管理图表视图的更新,但有时可能需要手动调用update()方法来强制刷新图表视图。

三.其他类

QLegend 图项标签类:该类用于显示图表的图例,不能自行创建或删除图例对象,但可以通过QChart类引用他们;

QValueAxis 数值填充类:该类用于将数据添加到图表的轴上。

具体的图标绘制请参看下篇文章。

相关推荐
李日灐13 小时前
C++STL:list(双链表)的底层实现 && 部分源码解析
开发语言·c++
无限进步_13 小时前
C语言宏的魔法:探索offsetof与位交换的奇妙世界
c语言·开发语言·windows·后端·算法·visual studio
代码雕刻家13 小时前
C语言关于换行符的注意事项
c语言·开发语言
认真敲代码的小火龙13 小时前
【JAVA项目】基于JAVA的图书管理系统
java·开发语言·课程设计
爱敲代码的小冰13 小时前
js 时间的转换
开发语言·前端·javascript
缘三水13 小时前
【C语言】14.指针(4)
c语言·开发语言·指针·语法
电子_咸鱼13 小时前
【QT SDK 下载安装步骤详解 + QT Creator 导航栏使用教程】
服务器·开发语言·网络·windows·vscode·qt·visual studio code
AAA阿giao13 小时前
深入理解 JavaScript 中的面向对象编程(OOP):从构造函数到原型继承
开发语言·前端·javascript·原型·继承·原型模式·原型链
2301_7973122613 小时前
学习Java22天
java·开发语言
jllllyuz13 小时前
MATLAB雷达系统设计与仿真
开发语言·matlab