首页 > 其他分享 >Qt QCharts绘制柱状图,柱高和y轴数据刻度不匹配

Qt QCharts绘制柱状图,柱高和y轴数据刻度不匹配

时间:2024-04-10 13:33:20浏览次数:19  
标签:Qt 柱高 axisY chart 柱状图 series new include

QCharts绘制柱状图,柱高和y轴数据刻度不匹配

 1 //在项目pro文件中添加以下内容
 2  QT       += charts
 3  
 4  //在.h文件中添加以下内容,注意:需要将头文件及命名空间添加到ui命名空间之前,否则将提示错误
 5  #include <QtCharts/QChartView>
 6  #include <QtCharts/QBarSeries>
 7  #include <QBarCategoryAxis>
 8  #include <QValueAxis>
 9  #include <QBarSet>
10  
11  QT_CHARTS_USE_NAMESPACE
12 
13 创建项目,在main.cpp中添加以下内容:
14 
15  #include "mainwindow.h"
16  #include <QApplication>
17  
18  int main(int argc, char *argv[])
19  {
20   QApplication a(argc, argv);
21  QBarSet *set0 = new QBarSet("警告");
22  QBarSet *set1 = new QBarSet("报警");
23  
24  *set0 << 1 << 2 << 3 << 5 << 4;
25  *set1 << 2 << 4 << 0 << 5 << 4;
26  
27  QBarSeries *series = new QBarSeries();
28  series->append(set0);
29  series->append(set1);
30  
31  QChart *chart = new QChart();
32  //chart->addSeries(series);           /************* 该语句应当放置此位置************/
33  
34  QStringList dateList;
35  dateList << "11" << "12" << "13" << "14" << "15";
36  QBarCategoryAxis *axisX = new QBarCategoryAxis();
37  axisX->append(dateList);
38  axisX->setTitleText("日期");
39  
40  QValueAxis *axisY = new QValueAxis();
41  axisY->setRange(0,10);
42  axisY->setLabelFormat("%d");
43  axisY->setTickCount(6);
44  axisY->setTitleText("次数");
45  
46  chart->setAxisX(axisX, series);                  //设置X坐标轴
47  chart->setAxisY(axisY, series);                  //设置Y坐标轴
48  
49  chart->legend()->setVisible(true);              //设置图例为显示状态
50  chart->legend()->setAlignment(Qt::AlignBottom); //设置图例的显示位置在底部
51  
52  chart->addSeries(series);                 /************* 问题所在************/
53  chart->setTitle("火情记录");
54  chart->setAnimationOptions(QChart::SeriesAnimations);
55  
56  QChartView *chartView = new QChartView(chart);
57  chartView->setRenderHint(QPainter::Antialiasing);
58  
59  MainWindow w;
60  w.setCentralWidget(chartView);
61  w.show();
62  
63  return a.exec();
64  }

程序运行结果如下:

细心的朋友可以发现,明明数据值最大为5,但是柱状图的最高值为10,这就是问题所在

如果想要解决以上问题,需要将chart对象绑定数据序列放在创建坐标轴之前,修改后程序运行效果如下:

 问题解决

标签:Qt,柱高,axisY,chart,柱状图,series,new,include
From: https://www.cnblogs.com/ybqjymy/p/18125839

相关文章

  • Qt - Qt Creator下载与安装
    一、QtCreator简介Qt是一个跨平台应用开发框架。QtCreator是一个跨平台的集成开发环境(IDE),集成了Qt所提供的功能,可以单独下载使用,也可以结合Qt组合使用。二、QtCreator下载下载地址:https://download.qt.io/archive/(1)进入下载界面后,选择下qt文件夹,或者qtcreator文件夹。(2......
  • python写的收Udp消息后,再发到 MQTT 的例子
    收到Udp消息后,再发到MQTT的例子完整代码udp2mqtt.pyimportjsonimportloggingimportrandomimportsocketimporttimeimportpaho.mqtt.clientasmqtt_clientBROKER='*******.ala.cn-hangzhou.emqxsl.cn'PORT=8084TOPIC="python-mqtt/wss"CLIEN......
  • C++ - VS2019配置Qt开发环境
    下面正式介绍VS2019+Qt5.14.2开发环境的配置,其它版本类似,安装步骤如下:注意:首先自行安装好vs2019和qt5.14.2再执行以下步骤1、VisualStudio2019配置Qt环境(1)插件下载安装点击VS上方的菜单栏,选择“拓展—>管理拓展”进入管理拓展对话框,在右上方搜索qt,出现搜索结果后,选择......
  • qt 6 使用sqlite进行加密
    在做项目时使用的sqlite,但是这个数据库没有自带的密码设置,查了好多资料,终于解决了,感谢这个博主大佬的资料qtsqlite数据库加密和navicat实现互连互通_qtsqliteaes_128_cbc-CSDN博客下面仅供个人记录做参考1.https://codeload.github.com/devbean/QtCipherSqlitePlugin/zip/re......
  • Qt使用Sqlite数据库-1(入门级)
    1.在Pro文件中加入sql资源QT+=coreguisql    这是第一步也是最重要的一步,没有加入sql资源。在包含数据库文件时会报错找不到该文件。2.创建链接及打开数据库//包含数据库头文件#include<QSqlDatabase>#include<QSqlError>#include<QSqlQuery>//创建链接......
  • Qt通讯录管理系统
        在git上面找的一个操作文件的qt通讯录管理系统,尝试将它复刻了一下.    成果展示    分两个txt文件存储,一个是手机联系人,一个是电话卡联系人,主要功能就是增删改查,主要使用的是OOP的编程思想.    实现过程    界面布局 ......
  • Qt 项目编译流程总结
    通过VS来开发Qt项目的过程中,整个Qt项目的编译需要如下几个过程:Uic---->Rcc---->Moc---->预处理----->编译----->汇编----->链接对比普通的C++项目,Qt多了Uic---->Rcc---->Moc这三步。现在对QT项目所多出的三个编译过程进行分析:一、Uic:QtUserInte......
  • Qt加Opencv实现 梯度矫正 功能
    废话:有时候我们是从物品的斜上方拍摄的图片,看起来不直观,需要把视角拉正,这样的一个操作就叫做梯度矫正,需要用到的技术是Opencv的透视变换。这个只是一个简单的演示demo,如果完善一下,比如物品检测,可以应用更多的场景,比如常见的:文件、资料上传,软管摄像头的应用等,怎么说也是一个......
  • MQTT基础
    1、MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议2、MQTT历史:MQTT协议最初版本是在1999年建立的。他们当时正在开发一个利用卫星通讯监控输油管道的项目。为了实现这个项目要求,他们需要开发一种用于嵌入式设备的通讯协议,这种通讯协议必须满足以下条件:易于实现数......
  • MQTT用python写的收消息例子
    在MQTT官网给的sub_wss.py例子中修改改写自己的用户名和密码BROKER='*******.ala.cn-hangzhou.emqxsl.cn'//改成自己的连接地址USERNAME='**************'//用户名PASSWORD='*************'//密码注意这句是改使用v1回调API(与旧版本的库一起使用)。原......