news 2026/6/10 10:36:56

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进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 13:17:47

商家选择小程序商城系统:五大核心维度和AI运营趋势

随着数字化转型不断深入&#xff0c;商家对于线上经营阵地的需求&#xff0c;已从单纯的交易平台&#xff0c;转变为能够深度连接用户、达成精细化运营的综合性解决办法。小程序商城凭借其轻便的特点、可依托超级 APP 生态以及易于分享等特性&#xff0c;成为品牌布局私域、沉淀…

作者头像 李华
网站建设 2026/5/29 16:23:02

5分钟掌握:如何用TradingView工具高效抓取金融数据

5分钟掌握&#xff1a;如何用TradingView工具高效抓取金融数据 【免费下载链接】TradingView-data-scraper Extract price and indicator data from TradingView charts to create ML datasets 项目地址: https://gitcode.com/gh_mirrors/tr/TradingView-data-scraper 在…

作者头像 李华
网站建设 2026/6/8 23:29:35

汉诺塔递归流程图详解:三张图搞定递归精髓

汉诺塔递归算法是计算机科学中理解递归概念的经典案例。通过分析其流程图&#xff0c;我们可以清晰地看到递归调用与返回的过程&#xff0c;这种可视化方式对于掌握算法执行逻辑至关重要。本文将剖析流程图中的关键节点&#xff0c;帮助读者建立对递归机制的直观认识。 汉诺塔递…

作者头像 李华
网站建设 2026/6/6 22:57:00

免费获取终极像素字体:Fusion Pixel Font完整使用指南

还在为复古项目找不到合适的像素字体而烦恼吗&#xff1f;Fusion Pixel Font这款开源泛中日韩像素字体可能是你的终极解决方案。这款黑体无衬线风格的像素字体完美支持8、10和12像素三种尺寸&#xff0c;为游戏开发、界面设计和创意作品提供专业级字体支持。 【免费下载链接】f…

作者头像 李华
网站建设 2026/6/5 14:37:22

NFC读卡器工具:解锁电脑端智能读卡新体验

NFC读卡器工具&#xff1a;解锁电脑端智能读卡新体验 【免费下载链接】NFC读卡器工具-电脑版 本仓库提供了一个名为“NFC-Reader-Tool-电脑版.zip”的资源文件下载。该文件是一个PM532免费软件&#xff0c;功能强大且易于使用&#xff0c;适合需要进行NFC读卡操作的用户 项目…

作者头像 李华