使用指南

使用指南

ChartKit 的调用模型是“控件 + 数据结构 + 主题”。业务代码只需要准备分类、数值、点位或切片数据,再交给对应图表控件。

基类能力

所有当前 ChartKit 图表都继承 UIGQChartBase,并提供以下通用能力:

方法 说明 参数 返回值
setThemePreset(UIGQChartThemePreset preset) 使用内置主题预设。 presetkChartThemeDefaultkChartThemeMacaronskChartThemeShinekChartThemeDark void
getThemePreset() 读取当前主题预设。 无。 UIGQChartThemePreset
setTheme(const UIGQChartTheme& theme) 使用自定义主题结构。 theme:图表主题结构,包含背景、坐标轴、网格线、调色板等。 void
getTheme() 读取当前主题结构。 无。 const UIGQChartTheme&
setLegendPosition(UIGQChartLegendPosition position) 设置图例位置。 positionkChartLegendTopkChartLegendRightkChartLegendBottomkChartLegendLeft void
getLegendPosition() 读取当前图例位置。 无。 UIGQChartLegendPosition
setBackgroundColor(const QColor& color) 设置图表控件背景色。 color:背景颜色。 void
getBackgroundColor() 读取图表控件背景色。 无。 QColor
setAnimationEnabled(bool enabled) 开启或关闭动画。 enabled:是否启用动画。 void
getAnimationEnabled() 读取动画开关状态。 无。 bool
setAnimationDuration(int durationMs) 设置动画时长。 durationMs:动画时长,单位毫秒。 void
getAnimationDuration() 读取动画时长。 无。 int
restartAnimation() 数据更新后重新播放动画。 无。 void
getAnimationProgress() 读取当前动画进度。 无。 qreal
setTooltipOverlay(const QPoint& anchorPos, const QString& text) 设置 tooltip overlay。 anchorPos:提示框锚点;text:提示文本。 void
clearTooltipOverlay() 清除 tooltip overlay。 无。 void
hasTooltipOverlay() 判断当前是否存在 tooltip overlay。 无。 bool
drawTooltipOverlay(QPainter& painter) 绘制 tooltip overlay,通常由图表内部调用。 painter:绘制对象。 void

数据调用规范

图表类型 主要数据结构 推荐入口
折线图 UIGQLineChartSeries setCategories(...) + setSeries(...)
柱状图 UIGQBarChartSeries setCategories(...) + setSeries(...)
饼图 UIGQOpenGLPieChartSlice setSlices(...)
散点图 UIGQScatterChartSeries setSeries(...)
金融图表 UIGQFinancialKLineData / UIGQFinancialMinuteData setKLineData(...) / setMinuteData(...)

推荐调用流程

auto* chart = new UIGQBarChart(parent);

chart->setTitle("Policy Status");
chart->setCategories({"Active", "Expiring", "Invalid"});

QVector<UIGQBarChartSeries> series;
UIGQBarChartSeries item;
item.name = "Policies";
item.values = {420, 15, 30};
item.fillColor = QColor(35, 128, 224);
series.append(item);

chart->setSeries(series);
chart->setThemePreset(kChartThemeShine);
chart->setTooltipVisible(true);
chart->setHoverEnabled(true);

调用说明

  • setCategories(...) 与 values 的数量应保持一致;如果数量不同,图表会按可绘制的数据范围处理,业务侧仍建议保持一致。
  • 多序列图表使用 QVector<UIGQLineChartSeries>QVector<UIGQBarChartSeries>,不要重复访问内部 series。
  • clearSeries() / clearSlices() 用于清空当前数据。
  • 金融图表使用 setChartType(...) 切换 K 线、分时和成交量显示模式。
  • setSeriesVisible(index, visible) 用于在不删除数据的情况下控制序列显示。
  • 主题相关设置建议放在初始化或全局主题切换流程中。

调用边界

当前 ChartKit 不以 QtCharts 内部对象作为业务调用入口。业务侧只需要维护数据结构、主题和交互参数,图表内部渲染对象由控件自行管理。