柱状图
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可用于强调边框。