QT barchart将数据转化成条形图

本文介绍如何使用Qt的图表库绘制柱状图,包括配置工程文件、引入必要的头文件、创建并填充数据集、设置类别轴及图例等步骤。通过完整示例代码展示了如何创建一个简单的交互式柱状图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在工程文件.pro中加入

QT       += charts

2.需要的头文件

#include <QChart>

#include <QBarSet>

#include <QBarSeries>

3.创建集合并向它们追加数据

 QBarSet *set0 = new QBarSet("Jane");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;

4.创建 series结合并且添加barsets

QBarSeries *series = new QBarSeries();
series->append(set0);

5.创建chart,并且添加series

QChart *chart = new QChart();
 chart->addSeries(series);

6.创建类别轴和类别列表

1 QStringList categories;
2 categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
3  QBarCategoryAxis *axis = new QBarCategoryAxis();
4  axis->append(categories);
5  chart->createDefaultAxes();
6  chart->setAxisX(axis, series);

7.显示图例

 chart->legend()->setVisible(true);
 chart->legend()->setAlignment(Qt::AlignBottom);

8.创建画布

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

显示代码

 1 barChart::barChart(QWidget *parent) :
 2     QWidget(parent),
 3     ui(new Ui::barChart)
 4 {
 5     ui->setupUi(this);
 6     QBarSet* set0 = new QBarSet("jane");
 7     QBarSet* set1 = new QBarSet("jone");
 8     QBarSet* set2 = new QBarSet("mary");
 9     QBarSet* set3 = new QBarSet("Alsex");
10     QBarSet* set4 = new QBarSet("summer");
11     *set0<<1<<2<<3<<4<<5;
12     *set1<<5<<9<<2<<0<<3;
13     *set2<<3<<7<<1<<4<<2;
14     *set3<<6<<1<<9<<8<<3;
15     *set4<<0<<2<<6<<8<<1;
16     QBarSeries* barSerise = new QBarSeries();
17     barSerise->append(set0);
18     barSerise->append(set1);
19     barSerise->append(set2);
20     barSerise->append(set3);
21     barSerise->append(set4);
22     QChart* chart = new QChart();
23     chart->addSeries(barSerise);
24     chart->setTitle("Simple barchart example");
25     chart->setAnimationOptions(QChart::SeriesAnimations);
26     
27     QStringList str;
28     str<< "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
29     QBarCategoryAxis* axisx = new QBarCategoryAxis();
30     axisx->append(str);
31     chart->createDefaultAxes();
32     chart->setAxisX(axisx);
33 
34     chart->legend()->setVisible(true);
35     chart->legend()->setAlignment(Qt::AlignBottom);
36 
37     QChartView* chartView = new QChartView(chart);
38     chartView->setRenderHint(QPainter::Antialiasing);
39 
40     QHBoxLayout *layout = new QHBoxLayout();
41     layout->setContentsMargins(0, 0, 0, 0);
42     layout->addWidget(chartView);
43     setLayout(layout);
44 
45 }
46 
47 barChart::~barChart()
48 {
49     delete ui;
50 }

 运行结果

转载于:https://www.cnblogs.com/wxh-53919/p/9301047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值