news 2025/12/25 10:34:52

QCustomPlot绘制曲线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QCustomPlot绘制曲线

QCustomPlot绘制曲线

  • 1、前言
  • 2、下载 QCustomPlot 库
  • 3、在项目中使用QCustomPlot库
    • 3.1 把 QCustomPlot 加入你的 .pro 文件
    • 3.2 UI 里放一个 Widget 并提升为 QCustomPlot
    • 3.3 初始化 QCustomPlot
  • 4、项目文件
    • 4.1 .pro文件
    • 4.2 .h文件
    • 4.3 .cpp文件
  • 5、总结

1、前言

记录一下QCustomPlot绘制曲线的实现方法,方便自己回顾,也可以给有需要的人提供帮助。

2、下载 QCustomPlot 库

先从官网下载QCustomPlot 库

QCustomPlot 库下载链接

把下载好的压缩包解压

进入解压后的压缩包,找到这两个文件

把这两个文件复制粘贴到项目同级目录下

3、在项目中使用QCustomPlot库

3.1 把 QCustomPlot 加入你的 .pro 文件

把PrintSupport 模块添加进来
QT+=core gui printsupport

把前面那两个文件添加到,pro文件中,然后构建
SOURCES+=\ main.cpp \ studyqcustomplot.cpp \ qcustomplot.cpp HEADERS+=\ studyqcustomplot.h \ qcustomplot.h FORMS+=\ studyqcustomplot.ui

3.2 UI 里放一个 Widget 并提升为 QCustomPlot

在Qt Designer(UI)中添加一个QWidget

右键这个QWidget,点击提升为

输入QCustomPlot,接着点击添加

点击提升

可以看到这个QWidget被提升为了QCustomPlot

3.3 初始化 QCustomPlot

添加头文件

绘制曲线
// 生成 100 个 X/Y 点QVector<double>x(100),y(100);for(inti=0;i<100;++i){x[i]=i;y[i]=qSin(i/10.0);// 画一条正弦曲线}// 添加一条曲线ui->widget->addGraph();ui->widget->graph(0)->setData(x,y);// 设置坐标轴范围ui->widget->xAxis->setRange(0,100);ui->widget->yAxis->setRange(-1,1);// 绘制ui->widget->replot();
如下图所示,成功绘制

4、项目文件

为了方便大家参考,把.pro,.h,.cpp文件放在下面了

4.1 .pro文件

QT+=core gui printsupportgreaterThan(QT_MAJOR_VERSION,4):QT+=widgets CONFIG+=c++17#You can make your code fail to compileifit uses deprecated APIs.#In order todoso,uncomment the following line.#DEFINES+=QT_DISABLE_DEPRECATED_BEFORE=0x060000# disables all the APIs deprecated before Qt6.0.0SOURCES+=\ main.cpp \ studyqcustomplot.cpp \ qcustomplot.cpp HEADERS+=\ studyqcustomplot.h \ qcustomplot.h FORMS+=\ studyqcustomplot.ui#Default rulesfordeployment.qnx:target.path=/tmp/$${TARGET}/binelse:unix:!android:target.path=/opt/$${TARGET}/bin!isEmpty(target.path):INSTALLS+=target

4.2 .h文件

#ifndefSTUDYQCUSTOMPLOT_H#defineSTUDYQCUSTOMPLOT_H#include<QWidget>#include<qcustomplot.h>QT_BEGIN_NAMESPACEnamespaceUi{classStudyQCustomPlot;}QT_END_NAMESPACEclassStudyQCustomPlot:publicQWidget{Q_OBJECTpublic:StudyQCustomPlot(QWidget*parent=nullptr);~StudyQCustomPlot();private:Ui::StudyQCustomPlot*ui;};#endif// STUDYQCUSTOMPLOT_H

4.3 .cpp文件

#include"studyqcustomplot.h"#include"ui_studyqcustomplot.h"StudyQCustomPlot::StudyQCustomPlot(QWidget*parent):QWidget(parent),ui(newUi::StudyQCustomPlot){ui->setupUi(this);// 生成 100 个 X/Y 点QVector<double>x(100),y(100);for(inti=0;i<100;++i){x[i]=i;y[i]=qSin(i/10.0);// 画一条正弦曲线}// 添加一条曲线ui->widget->addGraph();ui->widget->graph(0)->setData(x,y);// 设置坐标轴范围ui->widget->xAxis->setRange(0,100);ui->widget->yAxis->setRange(-1,1);// 绘制ui->widget->replot();}StudyQCustomPlot::~StudyQCustomPlot(){deleteui;}

5、总结

以上就是QCustomPlot绘制曲线的整个过程了,浏览过程中,如若发现错误,欢迎大家指正,有问题的可以评论区留言或者私信。最后,如果大家觉得有所帮助的话,可以点个赞,谢谢大家!祉猷并茂,顺遂无虞!
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/22 16:44:44

千元级路由器选购:从Wi-Fi 7技术到硬件配置的核心考量

在千元级别路由器这一市场范围之内&#xff0c;存在着多样选择情况供消费者去面对&#xff0c;此价位区间将诸多品牌的中高端甚至部分旗舰型号都聚集在了一起&#xff0c;它是追求稳定性能、前瞻技术以及高性价比的一个平衡点所在之处。针对家庭里不断增长的智能设备情况、高带…

作者头像 李华
网站建设 2025/12/25 10:15:50

Android应用开发实战指南:完整项目资源解析

Android应用开发实战指南&#xff1a;完整项目资源解析 【免费下载链接】Android开发期末大作业资源文件 本仓库提供了一个Android开发期末大作业的资源文件&#xff0c;文件名为android开发期末大作业.zip。该资源文件包含了项目源码、任务书、实验大报告以及apk文件。通过这些…

作者头像 李华
网站建设 2025/12/25 10:30:54

LangChain4j流式AI交互终极指南:5大实战技巧与避坑方案

LangChain4j流式AI交互终极指南&#xff1a;5大实战技巧与避坑方案 【免费下载链接】langchain4j langchain4j - 一个Java库&#xff0c;旨在简化将AI/LLM&#xff08;大型语言模型&#xff09;能力集成到Java应用程序中。 项目地址: https://gitcode.com/GitHub_Trending/la…

作者头像 李华
网站建设 2025/12/24 13:15:17

Linux常见的日志服务管理的常见日志服务

Linux 日志服务管理 日志是 Linux 系统排障、安全审计、性能监控的核心依据&#xff0c;日志服务则负责日志的采集、存储、过滤、轮转与分析。本文梳理 Linux 中常见的日志服务&#xff08;从传统 syslog 到现代 systemd-journald、ELK&#xff09;&#xff0c;覆盖原理、配置…

作者头像 李华
网站建设 2025/12/25 10:27:54

重构伴侣机器人产业:人为控制模式的创新突围

一、灵感溯源&#xff1a;特斯拉机器人的 “笨拙” 与产业新可能特斯拉 Optimus 机器人取眼镜的演示视频曾引发热议 —— 当这个被寄予厚望的人形机器人在简单动作中显露机械感与延迟性时&#xff0c;人们开始反思&#xff1a;当前人工智能技术尚未成熟到支撑 “真正自主” 的伴…

作者头像 李华