QChart类
QChart类管理图表的系列、图例和轴的图形表示。更多信息...
头文件 | #include <QChart> |
继承 | QGraphicsWidget |
继承自 |
公共类型
枚举 | AnimationOption { NoAnimation, GridAxisAnimations, SeriesAnimations, AllAnimations } |
标志 | AnimationOptions |
枚举 | ChartTheme { ChartThemeLight, ChartThemeBlueCerulean, ChartThemeDark, ChartThemeBrownSand, ChartThemeBlueNcs, …, ChartThemeQt } |
枚举 | ChartType { ChartTypeUndefined, ChartTypeCartesian, ChartTypePolar } |
属性
|
|
公共函数
QChart(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags()) | |
虚拟 | ~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 | 背景笔() const |
qreal | 背景圆角() const |
QChart::ChartType | 图表类型() const |
void | createDefaultAxes() |
bool | 是否显示背景() const |
bool | 是否启用阴影() const |
bool | 是否显示绘图区域背景() const |
bool | isZoomed() |
QLegend * | 图例() const |
QLocale | 区域设置() const |
bool | 本地化数字() const |
QPointF | mapToPosition(const QPointF &value, QAbstractSeries *series = nullptr) |
QPointF | mapToValue(const QPointF &position, QAbstractSeries *series = nullptr) |
QMargins | 边距() const |
QRectF | 绘图区域() const |
QBrush | 绘图区域背景画刷() const |
QPen | 绘图区域背景画笔() 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) |
详细描述Details
QChart 是一个 QGraphicsWidget,它可以显示在 QGraphicsScene 中。它管理不同类型序列和其他图表相关对象(如图例和坐标轴)的图形表示。为了在布局中简单地显示图表,可以使用便利类 QChartView 而不是 QChart。此外,通过使用 QPolarChart 类,可以将线条、样条、区域和散点序列呈现为极坐标图表。
另请参阅QChartView 和 QPolarChart。
成员类型文档
枚举 QChart::AnimationOption
标志 QChart::AnimationOptions
此枚举描述图表中启用的动画。
常量 | 值 | 描述 |
---|---|---|
QChart::NoAnimation | 0x0 | 图表中的动画已禁用。这是默认值。 |
QChart::GridAxisAnimations | 0x1 | 图表中启用了网格轴动画。 |
QChart::SeriesAnimations | 0x2 | 图表中启用了序列动画。 |
QChart::AllAnimations | 0x3 | 图表中启用了所有类型的动画。 |
AnimationOptions 类型是 QFlags<AnimationOption> 的同义词。它存储 AnimationOption 值的 OR 组合。
枚举 QChart::ChartTheme
此枚举描述图表使用的主题。
主题是应用于图表所有视觉元素的自定义 UI 样式设置集合,例如系列的颜色、笔、刷和字体,以及坐标轴、标题和图例。《具有小部件的图表画廊》展示了如何使用主题。
注意:更改主题将覆盖对序列进行的所有先前自定义。
常量 | 值 | 描述 |
---|---|---|
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 主题。 |
枚举 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) |
动画选项 : QChart::AnimationOptions
此属性包含图表的动画选项。
根据此设置启用或禁用动画。
访问函数
QChart::AnimationOptions | animationOptions() const |
void | setAnimationOptions(QChart::AnimationOptions options) |
背景圆角 : qreal
此属性包含图表背景角落的圆角圆直径。
访问函数
qreal | backgroundRoundness() const |
void | setBackgroundRoundness(qreal 直径) |
背景可见 : bool
此属性包含图表背景是否可见。
访问函数
bool | isBackgroundVisible() const |
void | setBackgroundVisible(bool visible = true) |
另请参阅setBackgroundBrush(),setBackgroundPen()和plotAreaBackgroundVisible。
[只读]
chartType : const QChart::ChartType
此属性包含图表是笛卡尔图表还是极坐标图表。
此属性是内部设置的,且为只读。
访问函数
QChart::ChartType | chartType() const |
另请参阅QPolarChart。
启用阴影 : bool
此属性包含是否启用背景阴影效果。
如果设置为true
,则启用背景阴影效果。如果设置为false
,则禁用。
注意:阴影效果取决于主题,因此如果更改主题,设置可能会有所变化。
访问函数
bool | isDropShadowEnabled() const |
void | setDropShadowEnabled(bool enabled = true) |
区域设置 : QLocale
此属性包含用于格式化各种图表标签的区域设置。
标签仅在localizeNumbers设置为true
时本地化,除了QDateTimeAxis标签,它们始终使用此属性设置的QLocale。
默认为构造时应用的程序默认区域设置。
访问函数
QLocale | locale() const |
void | setLocale(const QLocale &locale) |
另请参阅localizeNumbers。
数字本地化 : bool
此属性包含是否本地化数字。
当设置为true
时,将使用locale属性设置的QLocale本地化在各种序列和轴标签中出现的所有生成的数字。当时设置为false
,始终使用C区域设置。默认为false
。
注意:此属性不影响QDateTimeAxis标签,它们始终使用区域设置属性设置的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) |
成员函数文档
[明确]
QChart::QChart(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags())
构造一个作为parent子项的图表对象。将wFlags指定的属性传递给QGraphicsWidget构造函数。
[虚拟 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()
以两倍的因子缩小视图。
注意: 如果结果包含无效的对数轴范围,则不会执行任何操作。
void QChart::zoomReset()
将系列域重置为调用任何缩放方法之前的值。
注意: 这还将重置从第一次缩放操作到调用此方法之间指定的滚动和显式轴范围设置。如果没有执行过缩放操作,则此方法不会执行任何操作。
© 2024 The Qt Company Ltd. 本文档中的文档贡献者是各自所有者的版权。提供的文档是在 Free Software Foundation 发布的 GNU 通用文档许可证版本 1.3 的条款下许可的。Qt 以及相应的标志是 The Qt Company Ltd. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。