Qchart 显示柱状图

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

项目中用到Qchart 显示柱状图,做个测试记录一下


提示:以下是本篇文章正文内容,下面案例可供参考

一、添加 QT += charts

在pro中添加在这里插入图片描述

QT += charts

二、测试

1.测试1

代码如下(示例):

#include <QtCharts>

using namespace QtCharts;

// 创建柱状图
QBarSeries *series = new QBarSeries();

// 添加数据
series->append(0, 6);
series->append(2, 4);
series->append(3, 8);

// 创建图表
QChart *chart = new QChart();
chart->addSeries(series);
chart->createDefaultAxes();

// 设置图表标题
chart->setTitle("Simple Bar Chart Example");

// 创建图表视图
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

// 显示图表视图
chartView->show();

问题:

series->append(0, 6);这个代码不能用

在这里插入图片描述
no matching function for call to ‘QtCharts::QBarSeries::append(int, int)’
能用才怪

2.更正

代码如下(示例):

#include "mainwindow.h"

#include <QApplication>

#include <QtCharts>

using namespace QtCharts;

int main(int argc, char *argv[])
{
   
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    // 创建柱状图
    QBarSeries *series = new QBarSeries();
    QBarSet *set = new QBarSet("Label");

    *set << 7 <<2<<8; // 这里假设我们有两个类别,索引为0的值是6

    // 添加数据
    series->append(set);
   //  *set << 1 << 2 ; // 这里假设我们有两个类别,索引为0的值是6
   // series->append(set);
   //  *set << 2 << 5 ; // 这里假设我们有两个类别,索引为0的值是6
   // series->append(set);

    // 创建图表
    QChart *chart = new QChart();
    chart->addSeries(series);
    chart->createDefaultAxes();

    // 设置图表标题
    chart->setTitle("Simple Bar Chart Example");

    // 创建图表视图
    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);

    // 显示图表视图
    chartView->show();
    return a.exec();
}


3.效果:

在这里插入图片描述

4.在改进一下

#include "mainwindow.h"
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QBarSeries>
#include <QtCharts/QBarSet>
#include <QtCharts/QLegend>
#include <QtCharts/QBarCategoryAxis>

using namespace QtCharts;

int main(int argc, char *argv[])
{
   
    QApplication a(argc, argv);

    // 创建一个主窗口
    QMainWindow window;

    // 创建一个柱状图系列
    QBarSeries *series = new QBarSeries();

    // 创建一个条目集合,并添加数据
    QBarSet *set = new QBarSet("Data");
    *set << 1 << 2 << 3 << 4 << 5; // 添加5个数据点

    // 将集合添加到系列中
    series->append(set);

    // 创建一个图表
    QChart *chart = new QChart();
    chart->addSeries(series); // 将系列添加到图表中
    chart->setTitle("Simple bar chart example");
    chart->setAnimationOptions(QChart::SeriesAnimations);

    // 创建坐标轴
    QStringList categories;
    categories << "Jan" << "Feb" << "Mar" << "Apr" << "May";
    QBarCategoryAxis *axisX = new QBarCategoryAxis();
    axisX->append(categories);
    chart->createDefaultAxes();
    chart->setAxisX(axisX, series);

    // 添加图例
    chart->legend()->setVisible(true);
    chart->legend()->setAlignment(Qt::AlignBottom);

    // 创建一个图表视图,并将图表设置为视图的中心部件
    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);

    // 将图表视图设置为主窗口的中心部件
    window.setCentralWidget(chartView);

    // 显示主窗口
    window.resize(420, 300);
    window.show();

    return a.exec();
}

效果
在这里插入图片描述

总结

继续努力

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 00:08:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 00:08:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 00:08:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 00:08:01       20 阅读

热门阅读

  1. SpringBoot中从HikariCP迁移到Oracle UCP指南

    2024-01-27 00:08:01       27 阅读
  2. Tcp实现聊天

    2024-01-27 00:08:01       28 阅读
  3. 2024.1.23力扣每日一题——最长交替子数组

    2024-01-27 00:08:01       41 阅读
  4. 整数反转算法(leetcode第7题)

    2024-01-27 00:08:01       31 阅读
  5. vue3常用代码

    2024-01-27 00:08:01       37 阅读
  6. Oracle中如何把整个表作为参数传递

    2024-01-27 00:08:01       27 阅读
  7. sudo 授权问题

    2024-01-27 00:08:01       30 阅读