首页 > 其他分享 >Qt中图表图形绘制类介绍

Qt中图表图形绘制类介绍

时间:2024-06-06 19:59:26浏览次数:27  
标签:返回 饼块 const Qt 标签 图表 柱状图 设置 绘制

接上篇介绍QChart 相关的类,本片主要在QChart 载体上进行图表图形绘制使用各种形状的图类。

一.QXYSeries类

QXYSeries类是QLineSeries折线图,QSplineSeries样条曲线图,QScatterSeries散点图的基类;
QXYSeries类的使用都可以参考下面详细介绍的折线图,样条曲线图,散点图等的应用。

二.QLineSeries 折线图类

1.图表属性

setName(); 设置名称
setColor(); 设置颜色
SetPen(); 设置画笔
hide(); 设置显隐
setVisible(); 设置可见
setBrush(); 设置画刷
setOpacity(); 设置透明度

2.数据操作

append(); 或 replace(); 添加数据
setPointsVisible(); 设置数据点的可见性
clear(); 清空图表内的数据
removePoints(); 从某个位置开始删除之后的数据点

3.标签操作

setPointLabelsVisible(); 设置可见性
setPointLabelsColor(); 设置文字颜色
setPointLabelsFont(); 字体设置
setPointLabelsFormat(); 格式设置

三.QBarSeries 柱状图类

1.QBarSet 集合元素

append(); 添加值到数据集的末尾
replace(); 替换数据集中的值
clear(); 清除数据集中所有值
count(); 返回数据集中值的个数
isEmpty(); 检查数据集是否为空
at(); 返回数据集中指定的值

2.QBarSeries 数据系列

append(); 添加QBarSet对象到系列的末尾
replace(); 替换系列中的QBarSet对象
clear(); 清楚所有对象
count(); 返回系列中对象的个数
isEmpty(); 检查系列是否为空
at(); 返回系列中指定索引的QBarSet对象

3.QBarCategoryAxis 条形图横坐标

void append(const QStringList &categories) , 将一组类别添加到轴的末尾
void insert(int index, const QString &category), 在指定索引位置插入一个类别。
void remove(const QString &category), 移除指定的类别。
void clear(); 清除轴中的所有类别。
int count(); 返回轴中类别的数量。
QString categoryAt(int index); 返回轴中指定索引位置的类别。
QStringList categories(); 返回包含轴所有类别的列表。
void setCategories(const QStringList &categories); 设置轴的类别。
void setStartValue(qreal value); 设置轴的起始值。
qreal startValue(); 返回轴的起始值。
void setRange(qreal min, qreal max); 设置轴的范围。
void append(const QVector &points); 将一组点添加到轴的末尾,用于自动设置类别。
void replace(const QVector &points); 提供一个组点替换整个轴,用于自动设置类别

4.QStackedBarSeries 堆叠图

QStackedBarSeries(QObject *parent = nullptr) 构造函数,创建一个 QStackedBarSeries 对象。
void append(QBarSet *set) 将一个 QBarSet 添加到序列中。
void append(QList<QBarSet *> sets) 将一组 QBarSet 添加到序列中。
QList<QBarSet *> barSets() const 返回序列中的所有 QBarSet。
void setLabelsVisible(bool visible) 设置是否显示柱状图的标签。
bool labelsVisible() const 返回柱状图的标签可见性。
void setLabelsFormat(const QString &format) 设置标签的显示格式。
QString labelsFormat() const 返回标签的显示格式。
void setLabelsPosition(QAbstractBarSeries::LabelsPosition position) 设置标签的位置。
QAbstractBarSeries::LabelsPosition labelsPosition() const 返回标签的位置。

5.QPercentBarSeries 百分比图

QPercentBarSeries() 构造函数,创建一个 QPercentBarSeries 对象。
setLabelsVisible(bool) 设置百分比柱状图上的数据标签是否可见。
labelsVisible() 返回百分比柱状图上的数据标签是否可见的状态。
setLabelsPosition(Position) 设置百分比柱状图上的数据标签位置,Position 是一个枚举类型,表示标签的位置,如上方、下方、内部等。
labelsPosition() 返回百分比柱状图上的数据标签位置。
setLabelsFormat(QString) 设置百分比柱状图上的数据标签的格式,使用字符串指定标签的显示格式。
labelsFormat() 返回百分比柱状图上的数据标签的显示格式。
setPercentageVisible(bool) 设置百分比柱状图上的百分比标签是否可见。
percentageVisible() 返回百分比柱状图上的百分比标签是否可见的状态。
setStackingGap(qreal) 设置百分比柱状图中堆叠的百分比柱之间的间隙。
stackingGap() 返回百分比柱状图中堆叠的百分比柱之间的间隙。
append(QBarSet*) 在百分比柱状图中追加一个数据集。
insert(int, QBarSet*) 在百分比柱状图中插入一个数据集,参数为位置索引和 QBarSet 对象。
remove(QBarSet*) 从百分比柱状图中移除指定的数据集。
take(int) 从百分比柱状图中移除并返回指定位置的数据集。
take(QBarSet*) 从百分比柱状图中移除指定的数据集并返回。
count() 返回百分比柱状图中数据集的数量。
barSets() 返回百分比柱状图中所有数据集的列表。
barWidth() 返回百分比柱状图中百分比柱的宽度。
barWidthChanged(qreal) 当百分比柱状图中百分比柱的宽度发生变化时发出的信号,参数为新的宽度值。

四.QPieSerics 饼状图类

1.QPieSlice 单个饼块类

QPieSlice(qreal value, QString label) 构造函数,创建一个带有给定值和标签的 QPieSlice 对象。
setLabel(QString label) 设置饼块的标签文字。
label() 返回饼块的标签文字。
setValue(qreal value) 设置饼块的值。
value() 返回饼块的值。
setExploded(bool exploded) 设置饼块是否为爆炸状态,即是否与饼图分离。
isExploded() 返回饼块是否为爆炸状态。
setPieSeries(QPieSeries *series) 设置饼块所属的 QPieSeries 对象。
pieSeries() 返回饼块所属的 QPieSeries 对象。
setBrush(const QBrush &brush) 设置饼块的画刷,即填充颜色。
brush() 返回饼块的画刷。
setLabelBrush(const QBrush &brush) 设置饼块标签的画刷,即标签的颜色。
labelBrush() 返回饼块标签的画刷。
setPen(const QPen &pen) 设置饼块的画笔,即边框颜色和样式。
pen() 返回饼块的画笔。
setLabelVisible(bool visible) 设置饼块标签是否可见。
isLabelVisible() 返回饼块标签是否可见。
setExplodeDistanceFactor(qreal factor) 设置饼块爆炸时的距离因子,即与饼图分离的距离。
explodeDistanceFactor() 返回饼块爆炸时的距离因子。
setPercentage(qreal percentage) 设置饼块的百分比值。
percentage() 返回饼块的百分比值。
clicked(bool state) 鼠标点击饼块时发出的信号,参数为鼠标点击的状态(按下或释放)。
hovered(bool state) 鼠标悬停在饼块上时发出的信号,参数为悬停状态。
pressed() 鼠标按下饼块时发出的信号。
released() 鼠标释放饼块时发出的信号。

2.QPieSeries 饼状图类

QPieSeries(QObject *parent = nullptr) 构造函数,创建一个 QPieSeries 对象。
append(QPieSlice *slice) 向饼状图序列中追加一个饼块。
insert(int index, QPieSlice *slice) 在指定位置插入一个饼块。
remove(QPieSlice *slice) 从饼状图序列中移除指定的饼块。
clear() 清除饼状图序列中的所有饼块。
slices() 返回饼状图序列中的所有饼块。
count() 返回饼状图序列中的饼块数量。
at(int index) 返回饼状图序列中指定索引位置的饼块。
setVisible(bool visible) 设置饼状图序列的可见性。
isVisible() 返回饼状图序列的可见性。
setHoleSize(double size) 设置饼状图中间空心的大小,范围为 [0.0, 1.0],0.0 表示没有空心,1.0 表示整个饼状图都是空心。
holeSize() 返回饼状图中间空心的大小。
setPieSize(double size) 设置饼状图的大小,范围为 [0.0, 1.0],默认为 1.0。
pieSize() 返回饼状图的大小。
setLabelsVisible(bool visible) 设置饼块的标签是否可见。
labelsVisible() 返回饼块的标签是否可见。
setLabelsPosition(QPieSlice::LabelPosition position) 设置饼块标签的位置。
labelsPosition() 返回饼块标签的位置。
setLabelsPrecision(int precision) 设置饼块标签显示的小数位数。
labelsPrecision() 返回饼块标签显示的小数位数。
clicked(QPieSlice *slice) 点击饼块时发出的信号,参数为被点击的饼块。
hovered(QPieSlice *slice, bool state) 鼠标悬停在饼块上时发出的信号,参数为被悬停的饼块和悬停状态。
pressed(QPieSlice *slice) 鼠标按下饼块时发出的信号,参数为被按下的饼块。
released(QPieSlice *slice) 鼠标释放饼块时发出的信号,参数为被释放的饼块。

五.QScatterCerics 散点图类

1.QSplineSeries 绘制曲线类

QSplineSeries(QObject *parent = nullptr) 构造函数,创建一个 QSplineSeries 对象。
append(QPointF point) 向曲线中追加一个数据点。
append(QList points) 向曲线中追加一组数据点。
replace(int index, QPointF point) 替换指定索引处的数据点。
replace(QList points) 替换曲线中的所有数据点。
remove(int index) 移除指定索引处的数据点。
remove(int index, int count) 移除从指定索引开始的指定数量的数据点。
clear() 清空曲线中的所有数据点。
pointsVector() 返回曲线的数据点。
setUseOpenGL(bool enable) 设置是否使用 OpenGL 进行绘制。
useOpenGL() 返回是否使用 OpenGL 进行绘制。
setPen(const QPen &pen) 设置曲线的画笔,即曲线的颜色和样式。
pen() 返回曲线的画笔。
setBrush(const QBrush &brush) 设置曲线的画刷,即填充颜色。
brush() 返回曲线的画刷。
setPointLabelsVisible(bool visible) 设置是否显示数据点的标签。
isPointLabelsVisible() 返回数据点的标签是否可见。
setPointLabelsFormat(const QString &format) 设置数据点标签的显示格式,支持使用占位符。
pointLabelsFormat() 返回数据点标签的显示格式。
setPointLabelsColor(const QColor &color) 设置数据点标签的颜色。
pointLabelsColor() 返回数据点标签的颜色。
setPointLabelsFont(const QFont &font) 设置数据点标签的字体。
pointLabelsFont() 返回数据点标签的字体。
setPointsVisible(bool visible) 设置是否显示数据点。
arePointsVisible() 返回数据点是否可见。
setPointLabelsClipping(bool clipping) 设置是否裁剪超出绘图区域的数据点标签。
isPointLabelsClipping() 返回数据点标签是否裁剪超出绘图区域。
clicked(QPointF point) 鼠标点击曲线时发出的信号,参数为鼠标点击的数据点坐标。
hovered(QPointF point, bool state) 鼠标悬停在曲线上时发出的信号,参数为悬停状态以及悬停位置的数据点坐标。
pressed(QPointF point) 鼠标按下曲线时发出的信号,参数为鼠标按下的数据点坐标。
released(QPointF point) 鼠标释放曲线时发出的信号,参数为鼠标释放的数据点坐标。
doubleClicked(QPointF point) 鼠标双击曲线时发出的信号,参数为鼠标双击的数据点坐标。

2.QScatterCerics 散点图类

QScatterSeries(QObject *parent = nullptr) 构造函数,创建一个 QScatterSeries 对象。
append(QPointF point) 向散点图中追加一个数据点。
append(QList points) 向散点图中追加一组数据点。
replace(int index, QPointF point) 替换指定索引处的数据点。
replace(QList points) 替换散点图中的所有数据点。
remove(int index) 移除指定索引处的数据点。
remove(int index, int count) 移除从指定索引开始的指定数量的数据点。
clear() 清空散点图中的所有数据点。
pointsVector() 返回散点图的数据点。
setMarkerShape(QScatterSeries::MarkerShape shape) 设置散点的形状,可以是圆形、方形等。
markerShape() 返回散点的形状。
setMarkerSize(qreal size) 设置散点的大小。
markerSize() 返回散点的大小。
setPen(const QPen &pen) 设置散点图的画笔,即散点的边框颜色和样式。
pen() 返回散点图的画笔。
setBrush(const QBrush &brush) 设置散点图的画刷,即散点的填充颜色。
brush() 返回散点图的画刷。
setBorderColor(const QColor &color) 设置散点的边框颜色。
borderColor() 返回散点的边框颜色。
setBackgroundColor(const QColor &color) 设置散点的背景颜色。
backgroundColor() 返回散点的背景颜色。
setBorderColor(const QColor &color) 设置散点的边框颜色。
borderColor() 返回散点的边框颜色。
setBrush(const QBrush &brush) 设置散点的画刷,即填充颜色。
brush() 返回散点的画刷。
setPen(const QPen &pen) 设置散点的画笔,即边框颜色和样式。
pen() 返回散点的画笔。
setUseOpenGL(bool enable) 设置是否使用 OpenGL 进行绘制。
useOpenGL() 返回是否使用 OpenGL 进行绘制。
setMarkerShape(QScatterSeries::MarkerShape shape) 设置散点的形状,可以是圆形、方形等。
markerShape() 返回散点的形状。
setMarkerSize(qreal size) 设置散点的大小。
markerSize() 返回散点的大小。
setMarkerColor(const QColor &color) 设置散点的颜色。
markerColor() 返回散点的颜色。
clicked(QPointF point) 鼠标点击散点时发出的信号,参数为鼠标点击的数据点坐标。
hovered(QPointF point, bool state) 鼠标悬停在散点上时发出的信

六.其他

除过以上常见的图表类,还有QAreaSerics 面积图类和QCategoryAxis 分类轴类,但这两个比较少见,在此不做表述。

标签:返回,饼块,const,Qt,标签,图表,柱状图,设置,绘制
From: https://blog.csdn.net/qianniulaoren/article/details/139508551

相关文章

  • WPF,图表控件
    开源代码地址:https://github.com/bearhanQ/WPFFramework;QQ群:332035933;<UserControlx:Class="WpfBootstrap.View.ChartsView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://......
  • css 理解了原理,绘制三角形就简单了
     1.border-位置注意:border-bottom/up/right/left主要是以三角形的结构搭建而成,而border也是如此。而且从边框的外围开始计算像素尺寸。在理解了这一点之后,绘制三角形就简单多了。1.transparent注意:该属性主要是颜色透明。<template> <mainstyle="width:500px;border:......
  • Qt QLineEdit设置数据的输入范围QIntValidator和QDoubleValidator
    在日常开发过程中QLineEdit作为输入框,有时要限制输入的内容,比哪,考试分数为1-100,这个时候就使用QIntValidator作为限制范围,而如何输入的是带小数的呢,那么使用QDoubleValidator可以吗,下面请看具体的示例。1.限制输入的最初使用的是正则表达式1QRegExpregIntExp("^(([1-9][0......
  • Qt 正则表达式 QRegularExpression
    正则表达式QRegularExpression学习在Qt中有两种和正则相关的类,一种是QRegExp类,今天查资料说的好像是从Qt4传承下来的,BUG相对来说比较多,目前基本已停止维护了,多用于正则匹配,还有一种就是今天要讲的QRegularExpression类,是Qt5新开辟出来的类,相对来说比较完善(网上这......
  • Qt QLineEdit设置IP输入限制
    QT中设置QLineEdit只允许输入IP格式的数据,我们可以使用正则表达式,不过在QT5和QT6中有一点点不一样(QT5中是QRegExp和QRegExpValidator,QT6中是QRegularExpression和QRegularExpressionValidator):QT51#include<QRegExp>2#include<QRegExpValidator>34ui->lineEdit->......
  • windows使用qt-mingw编译opencv4
    windows使用qt-mingw编译opencv4所需软件:cmake-guiqt工具链能正常使用git1.下载opencv源码2.cmake配置opencv2.1选择opencv源码目录和编译目录以opencv4.10为例。​​2.2配置cmake指定qt-mingw工具链点击configure。​​​​​​​​设置CMAKE_MAKE_PROGRAM......
  • c#WinFrom自定义图表仪表控件-频谱
     这是为客户定制的一个频谱图表控件,先看下成品效果,gif较大,略等片刻   开发步骤分析:1、界面有多个间距不等的线分割的区域,每个区域的值范围不同,我们就需要把每个区域定义出来,方便我们操作的时候来计算值2、有几个圆圈是需要鼠标来回拖动的,那么就需要将每个圆的区域定义......
  • 解锁用Mermaid绘制图表的神奇力量
    在这个快节奏、信息爆炸的时代,我们迫切需要一种简单、高效且美观的方式来表达复杂的思想和流程。幸运的是,Mermaid就是这样一种工具。无论你是开发者、项目经理还是设计师,Mermaid都能帮助你轻松绘制各种类型的图表,让你的文档和报告更加生动有趣。现在,让我们一起探索如何使......
  • PyQt5打造高效的剪贴板管理器
    介绍:在数字化时代,有效地管理剪贴板中的复制内容对于提高生产力和简化使用至关重要。尽管剪贴板是现代计算的基本功能之一,但其默认功能通常缺乏高级管理选项。在本文中,我们将探讨如何利用PyQt5构建强大的剪贴板管理器,PyQt5是用于创建图形用户界面(GUI)的强大Python框架。通过......
  • 除visio以外的几款好用流程图绘制工具
            流程图绘制软件在嵌入式软件开发中扮演着重要的角色,它们能够帮助用户清晰、直观地展示工作流程。以下是几款流行的流程图绘制软件及其特点的详细报告:思维导图MindMasterMindMaster作为一款专业的思维导图软件,不仅具备强大的思维导图制作功能,同时也提供了丰......