QChart Class
QChart 类管理图表系列、图例和坐标轴的图形表示。更多
Header: | #include <QChart> |
Inherits: | QGraphicsWidget |
Inherited By: |
公共类型
enum | AnimationOption { NoAnimation, GridAxisAnimations, SeriesAnimations, AllAnimations } |
flags | AnimationOptions |
enum | ChartTheme { ChartThemeLight, ChartThemeBlueCerulean, ChartThemeDark, ChartThemeBrownSand, ChartThemeBlueNcs, …, ChartThemeQt } |
enum | ChartType { ChartTypeUndefined, ChartTypeCartesian, ChartTypePolar } |
属性
|
|
公共功能
QChart(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags()) | |
virtual | ~QChart() |
void | addAxis(QAbstractAxis *axis, Qt::Alignment alignment) |
void | addSeries(QAbstractSeries *series) |
int | animationDuration() const |
QEasingCurve | animationEasingCurve() const |
QChart::AnimationOptions | animationOptions() const |
QList<QAbstractAxis *> | axes(Qt::Orientations orientation = Qt::Horizontal|Qt::Vertical, QAbstractSeries *series = nullptr) const |
QBrush | backgroundBrush() const |
QPen | backgroundPen() const |
qreal | backgroundRoundness() const |
QChart::ChartType | chartType() const |
void | createDefaultAxes() |
bool | isBackgroundVisible() const |
bool | isDropShadowEnabled() const |
bool | isPlotAreaBackgroundVisible() const |
bool | isZoomed() |
QLegend * | legend() const |
QLocale | locale() const |
bool | localizeNumbers() const |
QPointF | mapToPosition(const QPointF &value, QAbstractSeries *series = nullptr) |
QPointF | mapToValue(const QPointF &position, QAbstractSeries *series = nullptr) |
QMargins | margins() const |
QRectF | plotArea() const |
QBrush | plotAreaBackgroundBrush() const |
QPen | plotAreaBackgroundPen() const |
void | removeAllSeries() |
void | removeAxis(QAbstractAxis *axis) |
void | removeSeries(QAbstractSeries *series) |
void | scroll(qreal dx, qreal dy) |
QList<QAbstractSeries *> | series() const |
void | setAnimationDuration(int msecs) |
void | setAnimationEasingCurve(const QEasingCurve &curve) |
void | setAnimationOptions(QChart::AnimationOptions options) |
void | setBackgroundBrush(const QBrush &brush) |
void | setBackgroundPen(const QPen &pen) |
void | setBackgroundRoundness(qreal diameter) |
void | setBackgroundVisible(bool visible = true) |
void | setDropShadowEnabled(bool enabled = true) |
void | setLocale(const QLocale &locale) |
void | setLocalizeNumbers(bool localize) |
void | setMargins(const QMargins &margins) |
void | setPlotArea(const QRectF &rect) |
void | setPlotAreaBackgroundBrush(const QBrush &brush) |
void | setPlotAreaBackgroundPen(const QPen &pen) |
void | setPlotAreaBackgroundVisible(bool visible = true) |
void | setTheme(QChart::ChartTheme theme) |
void | setTitle(const QString &title) |
void | setTitleBrush(const QBrush &brush) |
void | setTitleFont(const QFont &font) |
QChart::ChartTheme | theme() const |
QString | title() const |
QBrush | titleBrush() const |
QFont | titleFont() const |
void | zoom(qreal factor) |
void | zoomIn() |
void | zoomIn(const QRectF &rect) |
void | zoomOut() |
void | zoomReset() |
信号
void | plotAreaChanged(const QRectF &plotArea) |
详细说明
QChart 是一个可以在QGraphicsScene 中显示的QGraphicsWidget 。它管理不同类型系列的图形表示以及其他与图表相关的对象,如图例和坐标轴。要在布局中简单地显示图表,可以使用便利类QChartView 代替 QChart。此外,还可以使用QPolarChart 类将折线图、样条线图、面积图和散点图显示为极坐标图。
另请参阅 QChartView 和QPolarChart 。
成员类型文档
枚举 QChart::AnimationOption
flags QChart::AnimationOptions
该枚举描述了图表中启用的动画。
常量 | 值 | 说明 |
---|---|---|
QChart::NoAnimation | 0x0 | 图表中禁用动画。这是默认值。 |
QChart::GridAxisAnimations | 0x1 | 图表中已启用网格轴动画。 |
QChart::SeriesAnimations | 0x2 | 图表中已启用系列动画。 |
QChart::AllAnimations | 0x3 | 图表中已启用所有动画类型。 |
AnimationOptions 类型是QFlags<AnimationOption> 的类型定义。它存储 AnimationOption 值的 OR 组合。
enum QChart::ChartTheme
该枚举描述图表使用的主题。
主题是与用户界面风格相关的内置设置集合,应用于图表的所有视觉元素,如颜色、笔、刷子、系列字体以及坐标轴、标题和图例。带小工具的图表图库说明了如何使用主题。
注意: 更改主题将覆盖之前应用于系列的所有自定义设置。
常数 | 值 | 说明 |
---|---|---|
QChart::ChartThemeLight | 0 | 浅色主题,即默认主题。 |
QChart::ChartThemeBlueCerulean | 1 | 蓝色主题。 |
QChart::ChartThemeDark | 2 | 深色主题 |
QChart::ChartThemeBrownSand | 3 | 沙棕色主题。 |
QChart::ChartThemeBlueNcs | 4 | 自然色系统(NCS)蓝色主题。 |
QChart::ChartThemeHighContrast | 5 | 高对比度主题 |
QChart::ChartThemeBlueIcy | 6 | 冰蓝色主题 |
QChart::ChartThemeQt | 7 | Qt 主题 |
enum QChart::ChartType
该枚举描述图表类型。
常数 | 值 | 说明 |
---|---|---|
QChart::ChartTypeUndefined | 0 | 图表类型未定义。 |
QChart::ChartTypeCartesian | 1 | 笛卡尔图表。 |
QChart::ChartTypePolar | 2 | 极坐标图表 |
属性文档
animationDuration : int
此属性保存图表动画的持续时间。
访问功能:
int | animationDuration() const |
void | setAnimationDuration(int msecs) |
animationEasingCurve : QEasingCurve
该属性用于保存图表动画的缓和曲线。
访问功能:
QEasingCurve | animationEasingCurve() const |
void | setAnimationEasingCurve(const QEasingCurve &curve) |
animationOptions : QChart::AnimationOptions
此属性包含图表的动画选项。
动画根据此设置启用或禁用。
访问功能:
QChart::AnimationOptions | animationOptions() const |
void | setAnimationOptions(QChart::AnimationOptions options) |
backgroundRoundness : qreal
该属性用于保存图表背景四角的圆角直径。
访问功能:
qreal | backgroundRoundness() const |
void | setBackgroundRoundness(qreal diameter) |
backgroundVisible : bool
该属性用于确定图表背景是否可见。
访问功能:
bool | isBackgroundVisible() const |
void | setBackgroundVisible(bool visible = true) |
另请参阅 setBackgroundBrush(),setBackgroundPen() 和plotAreaBackgroundVisible 。
[read-only]
chartType : const QChart::ChartType
该属性表示图表是直角坐标图还是极坐标图。
该属性在内部设置,只读。
访问功能:
QChart::ChartType | chartType() const |
另请参阅 QPolarChart 。
dropShadowEnabled : bool
该属性用于确定是否启用背景阴影效果。
如果设置为true
,则启用背景阴影效果。如果设置为false
,则会禁用。
注意: 阴影效果取决于主题,因此如果更换主题,设置可能会改变。
访问功能:
bool | isDropShadowEnabled() const |
void | setDropShadowEnabled(bool enabled = true) |
locale : QLocale
该属性包含用于格式化各种图表标签的地域。
只有当localizeNumbers 为true
时,标签才会本地化,但QDateTimeAxis 标签除外,它始终使用本属性设置的QLocale 。
默认为构建图表时的应用程序默认区域设置。
访问功能:
QLocale | locale() const |
void | setLocale(const QLocale &locale) |
另请参阅 localizeNumbers 。
localizeNumbers : bool
该属性表示数字是否本地化。
当true
时,出现在各种系列和坐标轴标签中的所有生成数字都将使用locale 属性设置的QLocale 进行本地化。当false
时,将始终使用C语言本地化。默认为false
。
注意: 此属性不影响QDateTimeAxis 标签,因为它们始终使用通过 locale 属性设置的QLocale 。
访问函数:
bool | localizeNumbers() const |
void | setLocalizeNumbers(bool localize) |
另请参阅 locale 。
margins : QMargins
该属性保留图表矩形边缘与绘图区域之间允许的最小边距。
边距用于绘制标题、坐标轴和图例。
访问功能:
QMargins | margins() const |
void | setMargins(const QMargins &margins) |
plotArea : QRectF
该属性包含绘制图表的矩形区域。
绘图区域不包括边距定义的区域。默认情况下,如果该区域位于QChartView 内,则会调整其大小。如果为绘图区域设置了明确的大小,则会尊重该设置;如果要恢复默认行为,则调用setPlotArea(QRectF());
即可。
访问功能:
QRectF | plotArea() const |
void | setPlotArea(const QRectF &rect) |
通知信号:
void | plotAreaChanged(const QRectF &plotArea) |
plotAreaBackgroundVisible : bool
该属性表示图表绘图区域背景是否可见。
注: 默认情况下,绘图区背景不可见,绘图区使用一般图表背景。
访问函数:
bool | isPlotAreaBackgroundVisible() const |
void | setPlotAreaBackgroundVisible(bool visible = true) |
另请参阅 setPlotAreaBackgroundBrush(),setPlotAreaBackgroundPen() 和backgroundVisible 。
theme : QChart::ChartTheme
该属性用于保存图表的主题。
访问功能:
QChart::ChartTheme | theme() const |
void | setTheme(QChart::ChartTheme theme) |
title : QString
该属性用于保存图表标题。
标题将作为标题显示在图表顶部。图表标题支持 HTML 格式。
访问函数:
QString | title() const |
void | setTitle(const QString &title) |
成员函数文档
[explicit]
QChart::QChart(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags())
构造一个作为parent 子对象的图表对象。由wFlags 指定的属性将传递给QGraphicsWidget 构造函数。
[virtual noexcept]
QChart::~QChart()
删除图表对象及其子对象,如添加到图表中的系列和坐标轴对象。
void QChart::addAxis(QAbstractAxis *axis, Qt::Alignment alignment)
将坐标轴axis 添加到由alignment 指定对齐的图表中。图表拥有坐标轴的所有权。
另请参阅 removeAxis()、createDefaultAxes() 和QAbstractSeries::attachAxis()。
void QChart::addSeries(QAbstractSeries *series)
将系列series 添加到图表中,并获得其所有权。
注: 默认情况下,新添加的序列不会附加到任何坐标轴上,甚至在序列添加到图表之前使用createDefaultAxes() 为图表创建的坐标轴也不会附加到序列上。如果在显示图表之前没有为新添加的序列附加任何坐标轴,那么在绘制该序列时,就会将其视为有坐标轴,而坐标轴的范围正好适合该序列在图表中的绘制区域。如果同一图表中还显示有正确附加轴的其他系列,这可能会造成混乱,因此请务必在添加系列后调用createDefaultAxes() 或明确为系列附加轴。
另请参阅 removeSeries()、removeAllSeries()、createDefaultAxes() 和QAbstractSeries::attachAxis()。
QList<QAbstractAxis *> QChart::axes(Qt::Orientations orientation = Qt::Horizontal|Qt::Vertical, QAbstractSeries *series = nullptr) const
以orientation 指定的方向返回连接到系列series 的坐标轴。如果未指定系列,则返回以指定方向添加到图表中的所有坐标轴。
另请参阅 addAxis() 和createDefaultAxes()。
QBrush QChart::backgroundBrush() const
获取用于绘制图表区域背景的笔刷。
另请参阅 setBackgroundBrush()。
QPen QChart::backgroundPen() const
获取用于绘制图表区域背景的笔。
另请参阅 setBackgroundPen()。
void QChart::createDefaultAxes()
根据已添加到图表中的序列为图表创建坐标轴。之前添加到图表中的坐标轴将被删除。
注意: 必须在所有序列都添加到图表后才调用此函数。此函数创建的坐标轴不会自动附加到调用此函数后添加到图表中的序列。默认情况下,未附加坐标轴的系列将缩放以利用图表的整个绘图区域,如果其他系列也正确附加了坐标轴,则可能会造成混乱。
系列类型 | 水平轴 (X) | 垂直轴(Y) |
---|---|---|
QXYSeries | QValueAxis | QValueAxis |
QBarSeries | QBarCategoryAxis | QValueAxis |
QPieSeries | 无 | 无 |
如果图表中添加了多个QXYSeries 派生系列,且未添加其他类型的系列,则只创建一对坐标轴。如果图表中添加了多个不同类型的系列,则每个系列都有自己的一对坐标轴。
axes QPieSeries 不创建任何坐标轴。
另请参阅 axes() 和QAbstractSeries::attachAxis()。
bool QChart::isZoomed()
如果有序列具有缩放域,则返回true
。
QLegend *QChart::legend() const
返回图表的图例对象。所有权随图表一起保留。
QPointF QChart::mapToPosition(const QPointF &value, QAbstractSeries *series = nullptr)
返回series 指定的系列中与value 值相对应的图表位置。
QPointF QChart::mapToValue(const QPointF &position, QAbstractSeries *series = nullptr)
返回series 指定的系列中位于position 指定的图表位置的值。
QBrush QChart::plotAreaBackgroundBrush() const
返回用于填充图表绘图区域背景的笔刷。
另请参阅 plotArea(),plotAreaBackgroundVisible,plotAreaBackgroundPen() 和setPlotAreaBackgroundBrush().
QPen QChart::plotAreaBackgroundPen() const
返回用于绘制图表绘图区域背景的笔。
另请参阅 plotArea(),plotAreaBackgroundVisible,plotAreaBackgroundBrush() 和setPlotAreaBackgroundPen().
void QChart::removeAllSeries()
删除已添加到图表中的所有系列对象。
另请参阅 addSeries() 和removeSeries()。
void QChart::removeAxis(QAbstractAxis *axis)
从图表中删除坐标轴axis 。图表将释放指定axis 对象的所有权。
另请参阅 addAxis()、createDefaultAxes() 和QAbstractSeries::detachAxis()。
void QChart::removeSeries(QAbstractSeries *series)
从图表中删除系列series 。图表将释放指定series 对象的所有权。
另请参阅 addSeries() 和removeAllSeries()。
void QChart::scroll(qreal dx, qreal dy)
按dx 和dy 指定的距离滚动图表的可见区域。
对于极坐标图表,dx 表示沿角轴的角度,而不是距离。
QList<QAbstractSeries *> QChart::series() const
返回添加到图表中的所有系列。
另请参阅 addSeries()、removeSeries() 和removeAllSeries()。
void QChart::setBackgroundBrush(const QBrush &brush)
将用于绘制图表区域背景的画笔设置为brush 。
另请参阅 backgroundBrush() 。
void QChart::setBackgroundPen(const QPen &pen)
将用于绘制图表区域背景的笔设置为pen 。
另请参阅 backgroundPen() 。
void QChart::setPlotAreaBackgroundBrush(const QBrush &brush)
将用于填充图表绘图区域背景的笔刷设置为brush 。
另请参阅 plotArea(),plotAreaBackgroundVisible,setPlotAreaBackgroundPen() 和plotAreaBackgroundBrush() 。
void QChart::setPlotAreaBackgroundPen(const QPen &pen)
将用于绘制图表绘图区域背景的笔设置为pen 。
另请参阅 plotArea(),plotAreaBackgroundVisible,setPlotAreaBackgroundBrush() 和plotAreaBackgroundPen() 。
void QChart::setTitleBrush(const QBrush &brush)
将用于绘制标题文本的笔刷设置为brush 。
另请参阅 titleBrush() 。
void QChart::setTitleFont(const QFont &font)
将用于绘制图表标题的字体设置为font 。
另请参阅 titleFont() 。
QBrush QChart::titleBrush() const
返回用于绘制标题文本的笔刷。
另请参阅 setTitleBrush()。
QFont QChart::titleFont() const
获取用于绘制图表标题的字体。
另请参阅 setTitleFont()。
void QChart::zoom(qreal factor)
通过自定义系数factor 放大视图。
系数超过 1.0 时会放大视图,系数介于 0.0 和 1.0 之间时会缩小视图。
void QChart::zoomIn()
将视图放大两倍。
void QChart::zoomIn(const QRectF &rect)
将视图缩放至矩形rect 仍完全可见的最大水平。
注: 应用缩放可能会修改附加坐标轴的属性,例如 QAbstractAxis::min 和 QAbstractAxis::max。
注: 极坐标图表不支持此功能。
void QChart::zoomOut()
将视图缩小 2 倍。
注意: 如果结果包含无效的对数轴范围,该操作将不起任何作用。
void QChart::zoomReset()
将系列域重置为调用任何缩放方法之前的状态。
注: 此方法还将重置在第一次缩放操作和调用此方法之间指定的滚动和显式轴范围设置。如果未执行缩放操作,则此方法不会执行任何操作。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.