QCustomplot学习使用分享

QCustomplot学习使用分享

QCustomplot网上和例子都是在资源和头文件中加入qcustomplot.h和qcustomplot.cpp,然后在.ui中添加Widget,然后提升为QCustomplot,然后重新命名,在mainwindow中调用,很少有使用纯代码添加的。纯代码的好处肯定不用我讲吧。下边就将我的例子分享给大家,供自己以后能找到,也分享给大家。

1.首先新建工程,


一路下一步,然后选择QWidget


将从官网下载的QCustomplot文件中的以下两个文件拷到工程文件夹下


点击工程右键,添加现有文件,将这两个文件添加到工程。

然后将以下代码复制到Widget.h跟Widget.cpp文件内。运行。

Widget.h


#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include"qcustomplot.h"
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
    Q_OBJECT
 
public:
    explicit Widget(QWidget *parent = 0);
    void zPlotterWidgetInit();
    ~Widget();
 
private:
    Ui::Widget *ui;
};
 
#endif // WIDGET_H
 

Widget.cpp

#include "widget.h"
#include "ui_widget.h"
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
        ui->setupUi(this);
       setGeometry(QRect(30,30,650,450));
        zPlotterWidgetInit();
}
 
void Widget::zPlotterWidgetInit()
{
    QCustomPlot *preplot = new QCustomPlot(this);
    //设置绘图窗口大小,以下两个都可以
    //preplot->setFixedSize(480,300);
    preplot->setGeometry(QRect(30,30,650,350));
 
    //可拖拽+可滚轮缩放
    preplot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
 
    preplot->xAxis->setVisible(true);       //设置需要显示的坐标轴x
    preplot->yAxis->setVisible(true);       //设置需要显示的坐标轴y
    preplot->xAxis2->setVisible(true);      //设置需要显示的坐标轴x2
    preplot->yAxis2->setVisible(true);      //设置需要显示的坐标轴y2
 
    preplot->xAxis->setRange(0, 100);       //x轴的范围
    preplot->yAxis->setRange(0, 10);        //y轴的范围
    preplot->xAxis2->setRange(0, 100);      //x2轴的范围
    preplot->yAxis2->setRange(0, 10);       //y2轴的范围
 
    preplot->xAxis->setLabel("xAxis1");       //x1轴名称
    preplot->yAxis->setLabel("yAxis1");       //y1轴名称
    preplot->xAxis2->setLabel("xAxis2");       //x2轴名称
    preplot->yAxis2->setLabel("yAxis2");       //y2轴名称
 
    preplot->xAxis->setTickLabels(true);       //x1轴坐标刻度
    preplot->yAxis->setTickLabels(true);       //y1轴坐标刻度
    preplot->xAxis2->setTickLabels(true);       //x2轴坐标刻度
    preplot->yAxis2->setTickLabels(true);       //y2轴坐标刻度
 
//为坐标轴添加箭头
 
//    preplot->xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
//    preplot->yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
//    preplot->xAxis2->setUpperEnding(QCPLineEnding::esSpikeArrow);
//    preplot->yAxis2->setUpperEnding(QCPLineEnding::esSpikeArrow);
 
//坐标系反转
//     preplot->xAxis->setRangeReversed(true);
//     preplot->yAxis->setRangeReversed(true);
//     preplot->xAxis2->setRangeReversed(true);
//     preplot->yAxis2->setRangeReversed(true);
 
 
 
 
 
    preplot->addGraph();
    preplot->addGraph();
    preplot->graph(0)->setPen(QPen(Qt::blue));  //曲线1颜色
    preplot->graph(0)->setName(("name1"));      //曲线1名称
    preplot->graph(1)->setPen(QPen(Qt::red));   //曲线2颜色
    preplot->graph(1)->setName(("name2"));      //曲线2名称
 
    preplot->legend->setVisible(true);  //显示图例缩略图
    preplot->legend->setFont(QFont("Helvetica",9));
    preplot->legend->setBrush(QBrush(QColor(255,255,255,210)));//210透明度
    preplot->legend->setSelectableParts(QCPLegend::spItems);
    preplot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignTop|Qt::AlignRight);//标签位置
 
 
 
    for(double i=0;i<100;i++)
        {
            preplot->graph(0)->addData(i, i/50);
            preplot->graph(1)->addData(i, i*i/50);
        }
 
}
 
Widget::~Widget()
{
    delete ui;
}
 

运行,运行结果如下图


如果有什么不对的地方希望大家指正。

然后QCustomplot还有很多功能,此处只是刚刚入门的一些东西。自己编写,实际可用。

C知道: 嗨!关于QCustomPlot的基本使用,我可以给你一些指导。 首先,你需要确保已经正确安装了QCustomPlot库。你可以从官方网站(https://www.qcustomplot.com/)下载最新版本的库,并按照文档中的说明进行安装。 一旦你已经安装好了库,你可以在你的项目中包含QCustomPlot头文件,并链接QCustomPlot库。 下面是一个简单的示例,展示了如何使用QCustomPlot绘制一个简单的曲线图: ```cpp #include <QApplication> #include <QCustomPlot> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建一个QCustomPlot对象 QCustomPlot plot; // 创建一些数据点 QVector<double> xData, yData; for (int i = 0; i < 100; ++i) { xData.push_back(i); yData.push_back(qSin(i / 10.0)); } // 创建一个曲线图层,并设置数据 QCPGraph *graph = plot.addGraph(); graph->setData(xData, yData); // 设置图表标题和轴标签 plot.plotLayout()->insertRow(0); plot.plotLayout()->addElement(0, 0, new QCPTextElement(&plot, "曲线图", QFont("sans", 12, QFont::Bold))); plot.xAxis->setLabel("X轴"); plot.yAxis->setLabel("Y轴"); // 设置曲线的颜色和样式 graph->setPen(QPen(Qt::blue)); graph->setLineStyle(QCPGraph::lsLine); // 设置图表的范围 plot.xAxis->setRange(0, 100); plot.yAxis->setRange(-1, 1); // 显示图表窗口 plot.show(); return a.exec(); } ``` 这个示例中,我们首先创建了一个QCustomPlot对象,然后生成一些数据点,并将它们设置给一个QCPGraph对象。然后,我们设置了图表的标题、轴标签、曲线的颜色和样式,以及图表的范围。最后,我们显示了图表窗口。 你可以根据自己的需要修改代码,添更多的曲线、图表元素和样式,来实现更复杂的图表展示。 希望这些信息能对你有所帮助!如果你有任何问题,都可以继续问我哦。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值