创建条形图
注意:这是 “带小部件的图表”示例库的一部分。

在所有条形图中,barsets 的使用方式均相同。为说明不同条形图之间的差异,我们在示例中使用了相同的数据。 条形图所可视化的数据由 QBarSet 实例定义。在此,我们创建数据集并将数据追加到其中。此处使用 << 运算符追加数据,也可以使用 append 方法。
auto set0 = new QBarSet("Jane");
auto set1 = new QBarSet("John");
auto set2 = new QBarSet("Axel");
auto set3 = new QBarSet("Mary");
auto set4 = new QBarSet("Samantha");
*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;我们创建系列,并将柱状集追加到其中。系列将拥有这些柱状集的所有权。系列会将来自各集的数据分组为类别:每个集的第一个值被归入第一个类别,第二个值被归入第二个类别,以此类推。
QBarSeries *series = new QBarSeries;
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);在此,我们创建图表对象并将系列添加到其中。通过 setTitle 设置图表标题,然后通过调用 setAnimationOptions(QChart::SeriesAnimations) 启用系列的动画效果。
auto chart = new QChart;
chart->addSeries(series);
chart->setTitle("Simple Bar Chart");
chart->setAnimationOptions(QChart::SeriesAnimations);若要在坐标轴上显示类别,我们需要为此创建一个 QBarCategoryAxis。 在此,我们创建一个包含类别列表的类别轴,将其对齐到底部(作为 x 轴),并将其附加到数据系列上。图表将拥有该轴的所有权。对于 y 轴,我们使用一个对齐到左侧的数值轴。
QStringList categories {"Jan", "Feb", "Mar", "Apr", "May", "Jun"};
auto axisX = new QBarCategoryAxis;
axisX->append(categories);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
auto axisY = new QValueAxis;
axisY->setRange(0,15);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);我们还希望显示图例。为此,我们从图表中获取图例指针并将其设为可见。同时,通过将对齐方式设置为Qt::AlignBottom ,将图例放置在图表底部。
chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);最后,我们将图表添加到视图中。
createDefaultChartView(chart);© 2026 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.