Qt使用QCustomPlot的实现示例

 更新时间:2024年01月02日 09:46:29   作者:怎么追摩羯座  
QCustomPlot是一个基于Qt C++的图形库,用于绘制和数据可视化,并为实时可视化应用程序提供高性能服务,本文主要介绍了Qt使用QCustomPlot的实现示例,感兴趣的可以了解一下

一、下载文件

进入官网,选择“Download”、QCustomPlot.tar.gz

Qt Plotting Widget QCustomPlot - Download

二、创建项目

创建一个"Qt Widget Application"项目,基类选择“QMainWindow”,把刚才下载的压缩包里的“qcustomplot.h”和“qcustomplot.cpp”拷贝到项目目录下

右击项目名称,添加现有文件,选择“qcustomplot.h”和“qcustomplot.cpp”

双击“mainwindow.ui”,往界面上拖拽一个Widget,并进行栅格布局

右击“Widget”,选择“提升为”

填写类名称“QCustomPlot”,点击“添加”

点击“提升”

Widget的基类被更改

三、修改代码

在.pro文件中添加:QT += printsupport

#-------------------------------------------------
#
# Project created by QtCreator 2023-10-04T14:16:44
#
#-------------------------------------------------
 
QT += core gui
QT += printsupport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = MyCustomPlot
TEMPLATE = app
 
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
 
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
 
CONFIG += c++11
 
SOURCES += \
main.cpp \
mainwindow.cpp \
qcustomplot.cpp
 
HEADERS += \
mainwindow.h \
qcustomplot.h
 
FORMS += \
mainwindow.ui
 
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

更改mainwindow.cpp代码入下 

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qcustomplot.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //可移动缩放
    ui->widget->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom );
    //设置背景颜色
    ui->widget->setBackground(QColor(25,35,45));
    //轴刻度文字
    ui->widget->xAxis->setTickLabelColor(Qt::white);
    ui->widget->yAxis->setTickLabelColor(Qt::white);
    //设定右上角图形标注可见
    ui->widget->legend->setVisible(true);
    ui->widget->legend->setBrush(QColor(25,35,45));
    ui->widget->legend->setTextColor(Qt::white);
    ui->widget->legend->setFont(QFont("Helvetica", 9));
    //设置X轴坐标范围
    ui->widget->xAxis->setRange(-10, 100);
    //设置Y轴坐标范围
    ui->widget->yAxis->setRange(-150, 150);
    ui->widget->addGraph();
    ui->widget->graph(0)->setName("通道1");
    ui->widget->graph(0)->setPen(QPen(QColor(178,34,34)));
    //传入数据 QVector<double>类型
    QVector<double> xData;
    QVector<double> yData;
    for(int i = 0; i < 100; i++)
    {
        xData.append(i);
        yData.append(150 * sin(i));
    }
    ui->widget->graph(0)->setData(xData, yData);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}

四、运行测试

运行程序,界面显示如下

到此这篇关于Qt使用QCustomPlot的实现示例的文章就介绍到这了,更多相关Qt使用QCustomPlot内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 纯C语言:折半查找源码分享

    纯C语言:折半查找源码分享

    这篇文章主要介绍了纯C语言:折半查找源码,有需要的朋友可以参考一下
    2014-01-01
  • 一些C语言中字符串的算法问题解决实例小结

    一些C语言中字符串的算法问题解决实例小结

    这篇文章主要介绍了一些C语言中字符串的算法问题解决实例小结,包括将字符串转化为int类型的数及旋转字符串等操作,需要的朋友可以参考下
    2016-03-03
  • Qt事件过滤实现点击图片的放大和缩小

    Qt事件过滤实现点击图片的放大和缩小

    这篇文章主要为大家详细介绍了Qt事件过滤实现点击图片的放大和缩小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C++ 详细讲解对象的构造顺序

    C++ 详细讲解对象的构造顺序

    对象的构造往往和构造函数会牵扯在一起,构造函数的函数可能会由非常复杂的逻辑所组成,不同类的构造函数的程序逻辑很可能是相互依赖的,当这种相互依赖一旦成立,那么对象的构造顺序很可能导致难以调试的Bug出现
    2022-04-04
  • 基于C++编写一个键盘提示音程序

    基于C++编写一个键盘提示音程序

    首先讲一下思路,这次制作的小黑子相当于键盘提示音,输入J,N,T,M,会发出“鸡你太美”的声音,连续按下JNTM则会发出“你干嘛啊,哎呦”的声音,感兴趣的可以了解一下
    2023-03-03
  • C语言 深入讲解条件编译的用处

    C语言 深入讲解条件编译的用处

    C语言提供了条件编译的语法,就是在编译源码的时候,可以选择性地编译指定的代码。例如我们开发一个兼容windows系统和linux系统运行的项目,那么,一些与操作系统密切相关的代码,就需要进行选择性编译
    2022-04-04
  • vs2019创建dll以及使用的图文教程

    vs2019创建dll以及使用的图文教程

    本文主要介绍了vs2019创建dll以及使用的图文教程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • C++实现的大数相乘算法示例

    C++实现的大数相乘算法示例

    这篇文章主要介绍了C++实现的大数相乘算法,结合实例形式分析了C++大数相乘的概念、原理及代码实现技巧,需要的朋友可以参考下
    2017-08-08
  • C++实现LeetCode(80.有序数组中去除重复项之二)

    C++实现LeetCode(80.有序数组中去除重复项之二)

    这篇文章主要介绍了C++实现LeetCode(80.有序数组中去除重复项之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++编程语言实现单链表详情

    C++编程语言实现单链表详情

    这篇文章主要介绍的是利用C语言实现单链表,实现的是链表中最简单的一种单链表且每个结点中只含有一个指针域,下面将详细举例说明,需要的朋友可以参考一下
    2021-10-10

最新评论