QT之数据显示(QChart类)

这篇具有很好参考价值的文章主要介绍了QT之数据显示(QChart类)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.前言

最近想把之前学过的东西都记录一次,感觉都忘了,去找文件也不知道去哪了,感觉很乱,就写一些记录吧,现在看之前自己写的文章都有点云里雾里的了,现在开始写详细一点,以便之后方便自己理解和查阅。

2. QChart类的使用

先看代码,感觉把注释写上比较好理解

void MainWindow::wave()
{
//定义一个QString类型的变量str,用来保存ui界面中名为lineEdit的文本,也就是获取文本框的内容
    QString str = ui->lineEdit->text();
//将字符串格式的内容转化为Double型的,vector容器里应该只能存放数字类型的。
    double num = str.toDouble();
//这里就开始创建一个QChart类的对象,创建的格式就是这样,俗称new一个对象。
//这里加new和不加new的区别之后再深究,目前入门阶段,暂时不想知道,这里的QChart是一个类
//所以结合c++/c的语法可知,这里就是实例化了一个QChart*类型的指针变量,通过这个变量之后就可以调用QChart里的成员。
    QChart *chart = new QChart();
//实例化QLineSeries类,用于构成线
    QLineSeries *LineSeries = new QLineSeries();
//用创建号的vector容器存放num,这个vector之前在头文件里已经实例化过了
//格式为:QVector<int> vector;现在忘了这样实例化和QChart *vector = new Qvector();的区别了
//应该都一样的。vector里面的相关成员可以百度哦。
    vector.push_back(num);
    
    for(int k = 0; k<vector.length();k++)
    {
        //将vector里的数据利用QPointF()都存放到之前创建的LinSeries里面。
        //这里的感觉就是通过点组成线,因为LineSeries是指针变量,所以存放数据时
        //应该用*LineSeries,而不是用*LineSeries哦,这里不懂可以补一下c语言的知识。
        *LineSeries<<QPointF(k,vector[k]);
    }
    //打印vector的长度,注意是qDebug(),而不是qDebug
    qDebug()<<"vector的长度"<<vector.length();

    qDebug()<<"num = "<<num;
    //创建x,y轴对象
    QValueAxis *xAxis = new QValueAxis();
    QValueAxis *yAxis = new QValueAxis();
    //调用x轴的成员设置x轴的刻度属性
    xAxis->setTickCount(vector.length());
    //利用chart里的成员将线LineSeries放入chart里面
    chart->addSeries(LineSeries);
    //将坐标轴添加到chart里,并指定坐标轴的方向
    chart->addAxis(xAxis,Qt::AlignBottom);
    chart->addAxis(yAxis,Qt::AlignLeft);
    //当然了,这里需要将创建的x,y轴都与线联系起来,感觉这里的逻辑有点复杂,可以这么理解:
    //先是把点(vector里的数据)放到线上(LineSeries),再把线与坐标轴联系起来(此处的语句,attachAxis)
    //再将线与chart(画板)联系(addSeries),最后在画板上添加轴,感觉后面几个的顺序可以交换一下。
    LineSeries->attachAxis(xAxis);
    LineSeries->attachAxis(yAxis);
    //好像使用这个也行,在chart上使用默认的轴
    //chart->createDefaultAxes();
    //将chart添加到graphicsView上
    ui->graphicsView->setChart(chart);
    //清除文本内的数据
    ui->lineEdit->clear();

}

显示的效果:
qt显示数据,qt,ui,开发语言
这样感觉就可以实时显示和接收硬件上传感器传过来的数据了,当然这个只是单纯可以显示,很多功能不全,后续再看能不能搞一下完整的。
这个程序是需要点一下按钮才能进行数据显示的,所以需要一个connect来搞定。

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //这里利用槽函数,对按键的功能进行设置,一个位置是按键的名字,第二个位置是按键的类,不知道为啥要弄一个取址符号
    //第三个是this,有点懵,第四个就调用函数wave
    connect(ui->pushButton,&QPushButton::clicked,this,&MainWindow::wave);
}

最后,最重要的是,在使用类时马,要添加该类的头文件,这个是常识哦,还有就使用在用槽函数时,需要在头文件定义槽函数,比如这样。

private slots:
    void wave();

主要头文件:

#include <QVector>
#include <QtCharts>
#include <QDebug>

此外,还需要在.pro文件添加这个
qt显示数据,qt,ui,开发语言
额…还要就是ui界面的graphicsView也有讲究,需要修改一下
qt显示数据,qt,ui,开发语言
可以看到这两个类不一样,需要将graphicsView的类提升为QtCharts::QChartView。
qt显示数据,qt,ui,开发语言
这样就可以正常显示了。文章来源地址https://www.toymoban.com/news/detail-531395.html

到了这里,关于QT之数据显示(QChart类)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据

    对上两篇篇的工作C++ Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个 保存按钮,用于保存成绩数据。 1)在ui界面添加一个按钮         将其命名为saveBtn。

    2024年02月19日
    浏览(32)
  • Qt(十三)QChart绘制折线图

    一、简单绘图 Qt Charts基于Qt的Graphics View架构,其核心组件是 QChartView 和 QChart QChartView是显示图标的视图,基类为QGraphicsView QChart的基类是QGraphicsltem 类的继承关系: 创建项目: .pro 文件中添加: QT += charts 代码如下:其他文件未修改,修改代码只在mainwindow.cpp文件中进行。 m

    2024年02月02日
    浏览(39)
  • Qt6.3.2下QChart的使用

    Qt小白。 看了很多关于QCharts的使用说明。一直没能在Qt6.3.2下使用成功。总结一下失败经验。 环境:win11,Qt6.3.2 选择在线安装,安装的时候选择6.3.2,下面的additional library全选 生成新工程后,如果直接用QChart是会有各种奇怪错误。需要在CMakeList.txt中增加两行: 其他代码的写

    2023年04月21日
    浏览(32)
  • QT串口调试助手开发教程:上位机接收数据解析数据帧+多通道波形显示+数据保存

    在该设计中主要需要解决的问题就是接收单片机采集到的数据并在上位机将数字实时的通过波形显示出来,然后上位机要有保存下数据文件的功能,便于后续的软件读取数据做进一步的分析处理。有些人吃相难看,无底线,无道德,鉴于串口上位机会被广泛使用,撰写该教程

    2024年02月07日
    浏览(39)
  • 【QT】如何实时显示当前时间在UI上

    2024年02月15日
    浏览(26)
  • 在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

    1、首先在 Qt Designer 创建UI后,拖一个Widget窗口出来 2、在对象查看器中右击该Widget,选择 提升窗口部件 ,如下操作: 3、把UI转出来放在VS项目中,其中你的UI代码头文件会自带QVTKOpenGLNativeWidget.h,当然你的VS属性环境得配置好VTK的环境,QVTKOpenGLNativeWidget.h在VTKincludevtk-9.1路径

    2024年02月08日
    浏览(38)
  • Qt学习1:ui界面显示实时时间(自己学习用)

    Qt获取系统当前时间,ui界面显示实时时间和日期。 一、ui放入Qlabel 开关按钮是控制灯的,不用管。 1. 静态时间显示用虚拟text 二、.cpp添加代码 槽是 C++ 成员函数,可以被调用。 private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。(一对一关系) 在

    2024年02月08日
    浏览(38)
  • 【Qt】根据界面所在显示器自适应调整ui大小

    使用QDesktopWidget、QApplication::screens()等获取屏幕宽高、DPI等信息,详见上一篇概述。 我们需要将窗口、布局和控件的大小类型(size type)设置为相对单位,如: 设置窗口的尺寸策略为Qt::SizePolicy::Expanding 使用setBaseSize() + setSizeIncrement() 使窗口大小可根据屏幕比例增长 使用 percentages 而

    2023年04月26日
    浏览(34)
  • VS QT——ui不显示新添加成员(控件)||代码无提示

    场景1:新建项目,在ui里编辑之后,新添加的控件不显示代码提示。 场景2:成员 ui  报错 不允许使用不完整的类型  因为是刚开始学,花了两三天才找到解决办法。 网上方法: 重新编译 ui文件 + 重新扫描解决方案 (但是我这里还是无法解决) 根本原因:缺少xxx.ui 的头文

    2024年02月13日
    浏览(33)
  • Qt教程 — 2.1 如何使用Qt Designer 开发UI程序

    目录 1 Qt Designer简介 2 编辑UI界面 2.1 在 UI 界面添加一个Label 2.2 在 UI 界面添加一个按钮 2.3 在 UI 文件里连接信号与槽 方法一:通过信号和槽编辑栏 方法二:通过导航区信号和槽编按钮 方法三:通过跳转编辑代码实现—通过按钮输出文字 Qt Designer 是属于 Qt Creator 的一个功能

    2024年03月22日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包