QChart
一、描述
QChart 类继承自 QGraphicsWidget,用于管理图表、图例和轴。
二、类型成员
1、enum QChart::AnimationOption:此枚举描述图表中启用的动画。
- NoAnimation:禁用动画。默认值。
- GridAxisAnimations:启用网格轴动画。
- SeriesAnimations:启用曲线动画。
- AllAnimations:启用所有动画。
2、enum QChart::ChartTheme:此枚举描述图表使用的主题。
主题是应用于图表所有视觉元素的 UI 样式相关设置的内置集合,例如颜色、画笔、画刷和曲线字体,以及轴、标题和图例。
更改主题将覆盖之前应用于该曲线的所有自定义设置。
- ChartThemeLight:浅色主题,默认主题。
- ChartThemeBlueCerulean:天蓝色主题。
- ChartThemeDark:黑暗主题。
- ChartThemeBrownSand:沙褐色主题。
- ChartThemeBlueNcs:自然色系 (NCS) 蓝色主题。
- ChartThemeHighContrast:高对比度主题。
- ChartThemeBlueIcy:冰蓝色主题。
- ChartThemeQt:Qt 主题。
3、enum QChart::ChartType:此枚举描述图表类型。
- ChartTypeUndefined:图表类型未定义。
- ChartTypeCartesian:笛卡尔图表。
- ChartTypePolar:极坐标图。
三、属性成员
1、animationDuration : int
图表动画的持续时间。
2、animationEasingCurve : QEasingCurve
图表动画的缓动曲线。
3、animationOptions : QChart::AnimationOptions
图表的动画选项。
4、backgroundRoundness : qreal
图表背景转角处圆角的直径。
5、backgroundVisible : bool
图表背景是否可见。
6、【只读】chartType : const QChart::ChartType
图表类型。
7、dropShadowEnabled : bool
是否启用背景阴影效果。
注意:投影效果取决于主题,因此如果主题改变,设置可能会改变。
8、locale : QLocale
用于格式化各种图表标签的语言环境。在构建图表时默认为应用程序默认语言环境。
9、localizeNumbers : bool
数字是否进行本地化。默认为 false。
为 true 时,出现在各种图表和轴标签中的所有生成的数字都将使用带有 locale 属性的 QLocale 集进行本地化。为 false 则始终使用 C 语言环境。
此属性不影响 QDateTimeAxis 标签,它始终使用带有 locale 属性的 QLocale 集。
10、margins : QMargins
图表矩形边缘和绘图区域之间允许的最小边距。边距用于绘制标题、轴和图例。
11、plotArea : QRectF
绘制图表的矩形。不包括由 margins 定义的区域。
12、plotAreaBackgroundVisible : bool
图表绘图区域背景是否可见。默认为 false。
13、theme : QChart::ChartTheme
图表的主题。
14、title : QString
图表的标题。显示在图表顶部。支持 HTML 格式。
四、成员函数
1、void addAxis(QAbstractAxis*axis, Qt::Alignment alignment)
将坐标轴添加图表中。图表拥有轴的所有权。
2、void addSeries(QAbstractSeries*series)
将曲线添加到图表并获得它的所有权。
默认情况下,新添加的曲线不附加到任何轴上,即使是在将曲线添加到图表之前使用 createDefaultAxes() 为图表创建的那些轴也不附加。
如果同一个图表还显示具有正确附加轴的其他曲线,这可能会看起来很奇怪,因此请始终确保在添加曲线后调用 createDefaultAxes() 或为该曲线显式附加轴。
3、QList<QAbstractAxis *> axes(Qt::Orientations orientation = Qt::Horizontal|Qt::Vertical, QAbstractSeries *series = nullptr)
返回附加到曲线 series 上的 orientation 方向的轴。如果未指定曲线,则返回添加到图表中指定方向的所有轴。
4、void createDefaultAxes()
根据已添加到图表的曲线为图表创建轴。之前添加到图表中的任何轴都将被删除。
必须在将所有曲线添加到图表后调用此函数。调用此函数后,此函数创建的轴不会自动附加到添加到图表的任何曲线。默认情况下,没有附加轴的曲线将缩放以利用图表的整个绘图区域,如果还有其他带有正确连接轴的系列也存在,这可能会看起来很奇怪。
调用后可以通过将曲线提供为 axes() 函数调用的参数,从图表中获取特定于曲线的轴。
5、bool isZoomed()
如果任何曲线具有缩放域,则返回 true。
6、QLegend * legend()
返回图表的图例对象。
7、QPointF mapToPosition(const QPointF &value, QAbstractSeries *series = nullptr)
返回与曲线 series 中的值 value 对应的图表上的位置。
8、QPointF mapToValue(const QPointF &position, QAbstractSeries *series = nullptr)
返回在图表的位置 position 处曲线 series 中的值。
9、void removeAllSeries()
移除并永久删除所有已添加到图表的曲线。
10、void removeAxis(QAbstractAxis *axis)
从图表中删除坐标轴。将释放指定轴对象的所有权。
11、void removeSeries(QAbstractSeries *series)
从图表中移除曲线。将释放指定曲线对象的所有权。
12、void scroll(qreal dx, qreal dy)
按 dx 和 dy 指定的距离滚动图表的可见区域。
对于极坐标图,dx 表示沿角轴的角度,而不是距离。
13、QList<QAbstractSeries *> series()
返回添加到图表的所有曲线。
14、void setBackgroundBrush(const QBrush &brush)
设置用于绘制图表区域背景的画刷。
15、void setBackgroundPen(const QPen &pen)
设置用于绘制图表区域背景的画笔。
16、void setPlotAreaBackgroundBrush(const QBrush &brush)
设置用于填充图表绘图区域背景的画刷。
17、void setPlotAreaBackgroundPen(const QPen &pen)
设置用于绘制图表绘图区域背景的画笔。
18、void setTitleBrush(const QBrush &brush)
设置用于绘制标题文本的画笔设置为画刷。
19、void setTitleFont(const QFont &font)
设置用于绘制图表标题的字体。
20、void zoom(qreal factor)
按自定义因子缩放视图。
大于 1.0 的因子会放大视图,而介于 0.0 和 1.0 之间的因子会缩小视图。
21、void zoomIn()
将视图放大两倍。
22、void zoomIn(const QRectF &rect)
将视图放大到 rect 仍然完全可见的最大级别。
应用缩放可能会修改附加轴的属性,例如 QAbstractAxis::min 和 QAbstractAxis::max。
极坐标图不支持此功能。
23、void zoomOut()
将视图缩小两倍。
注意:如果结果包含无效的对数轴范围,这将不起作用。
24、void zoomReset()
将曲线域重置为调用任何缩放方法之前的值。
这还将重置在第一次缩放操作和调用此方法之间指定的滚动和显式轴范围设置。
QPolarChart
一、描述
QPolarChart 继承自 QChart。以极坐标图显示数据。
极坐标图以圆形图表的形式显示数据,其中数据的放置基于与图表中心(极点)的角度和距离。
在极坐标图中 QValueAxis 上的第一个和最后一个刻度线位于 0/360 度角处。
如果一个序列中两个连续点之间的角距离超过 180 度,那么任何连接这两个点的直线都变得无意义,并且不会被绘制。相反,将在图表中心之间绘制一条线。因此,在显示曲线、样条图或面积图时,必须相应地选择轴范围。
极坐标图在同一位置绘制相同方向的所有轴,因此使用多个相同方向的轴可能会造成混淆,除非额外的轴仅用于自定义网格。例如,可以使用辅助阴影 QCategoryAxis 显示突出显示的范围。
二、类型成员
1、enum QPolarChart::PolarOrientation:此枚举类型指定轴的极轴方向。
- PolarOrientationRadial:径向轴,其中值沿图表的半径放置,从极点开始。
- PolarOrientationAngular:角度轴,其中值放置在图表周围。
三、成员函数
1、void addAxis(QAbstractAxis *axis, QPolarChart::PolarOrientation polarOrientation)
将轴添加到极坐标图表中。图表拥有轴的所有权。
也可以使用 QChart::addAxis() 将轴添加到极坐标图中。
2、QList<QAbstractAxis *> axes(QPolarChart::PolarOrientations polarOrientation = PolarOrientations(PolarOrientationRadial | PolarOrientationAngular), QAbstractSeries *series = nullptr)
返回为具有极轴方向 polarOrientation 的曲线 series 添加的轴。如果 series 为 nullptr,则返回具有指定极轴方向的所有轴。
3、【static】QPolarChart::PolarOrientation axisPolarOrientation(QAbstractAxis *axis)
将轴 axis 的方向转换为对应的极轴方向。
如果 axis 为空或未添加到极坐标图,则返回值无意义。