柱状图

Bar Chart 柱状图

柱状图用于分类数据对比、排行、统计汇总和分组指标展示。当前公开控件类为 UIGQBarChart,文档文件名保留 column-chart.md 是为了兼容既有页面链接。

基类与类图

QOpenGLWidget
  └─ UIGQChartBase
      └─ UIGQBarChart + IUIGQWidgetBase

UIGQBarChart 继承 UIGQChartBase,通过 ChartKit 自身的数据结构绘制柱状图。业务代码只需要设置分类、序列、主题和交互参数。

数据结构

struct UIGQBarChartSeries
{
    QString name;
    QVector<double> values;
    QColor fillColor;
    QColor borderColor;
    bool visible = true;
};

常用方法

方法 说明 参数 返回值
setTitle(const QString& title) 设置标题。 title:标题文本。 void
getTitle() 读取标题。 无。 QString
setCategories(const QStringList& categories) 设置分类标签。 categories:分类名称列表。 void
getCategories() 读取分类标签。 无。 QStringList
setValues(const QVector<double>& values) 设置默认单序列数值。 values:数值列表。 void
getValues() 读取默认单序列数值。 无。 QVector<double>
setSeries(const QString& name, const QVector<double>& values, const QColor& color) 快速设置单组柱状数据。 name:序列名称;values:数值列表;color:填充色,可使用默认值。 void
setSeries(const QVector<UIGQBarChartSeries>& series) 设置多组柱状数据。 series:柱状图序列数组。 void
getSeries() 读取当前柱状图序列。 无。 QVector<UIGQBarChartSeries>
clearSeries() 清空所有数据组。 无。 void
setSeriesVisible(int index, bool visible) 控制指定数据组显示或隐藏。 index:序列索引;visible:是否显示。 void
isSeriesVisible(int index) 判断指定数据组是否显示。 index:序列索引。 bool
setTooltipMode(UIGQChartTooltipMode mode) 设置 tooltip 模式。 mode:tooltip 模式枚举。 void
getTooltipMode() 读取 tooltip 模式。 无。 UIGQChartTooltipMode
setTooltipVisible(bool visible) 设置 tooltip 是否显示。 visible:是否显示。 void
getTooltipVisible() 读取 tooltip 显示状态。 无。 bool
setHoverEnabled(bool enabled) 开启或关闭 hover 交互。 enabled:是否启用 hover。 void
getHoverEnabled() 读取 hover 交互状态。 无。 bool
initDemoData() 初始化演示数据。 无。 void

单序列调用

using namespace UIGQtLib;

auto* chart = new UIGQBarChart(parent);
chart->setTitle("Policy Overview");
chart->setCategories({"Active", "Expiring Soon", "Need Validation", "Expired"});
chart->setSeries("Policies", {420, 15, 30, 12}, QColor(35, 128, 224));
chart->setThemePreset(kChartThemeShine);
chart->setLegendPosition(kChartLegendBottom);
chart->setTooltipMode(kChartTooltipItem);
chart->setTooltipVisible(true);
chart->setHoverEnabled(true);

调用说明:

  • setCategories(...) 定义每根柱子的分类名称。
  • setSeries(name, values, color) 适合只有一组统计值的场景。
  • kChartTooltipItem 适合查看单个柱子的分类和值。

多序列调用

QVector<UIGQBarChartSeries> series;

UIGQBarChartSeries current;
current.name = "Current";
current.values = {420, 15, 30, 12};
current.fillColor = QColor(35, 128, 224);
series.append(current);

UIGQBarChartSeries previous;
previous.name = "Previous";
previous.values = {390, 22, 28, 18};
previous.fillColor = QColor(62, 180, 98);
series.append(previous);

chart->setSeries(series);

调用说明:

  • 每个 UIGQBarChartSeries 表示一组柱状数据。
  • values 的顺序应与 categories 对齐。
  • fillColor 控制柱子填充色,borderColor 可用于强调边框。