vs2008 如何使用QCustomPlot

vs2008 如何使用QCustomPlot,第1张

在你的应用中使用QCustomPlot 有2种方法:

1、将下载下来的qcustomplot.h和qcustomplot.cpp加入你的工程中。在你要使用qcustomplot的文件中:

[cpp] view plain copy print?

#include "qcustomplot.h"

然后像使用QWidget那样使用就行,因为QCustomPlot也是继承自QWidget的:

[cpp] view plain copy print?

QCustomplot *myqcp = new QCustomPlot

使用Qt Designer的话,在一个QWidget控件右键,提升为...,

然后在d出的对话框中,在提升为类名那里输入QCustomPlot,然后头文件那里会自动填充为qcustomplot.h。单击添加按钮将QCustomPlot加入提升类列表中,最后单击提升就可以了。

注意:提升之后不会立即看到什么变化,但当你运行程序的时候,你就能看到控件具有坐标和网格了。

2、不用包含qcustomplot.h和qcustomplot.cpp,只需引入qcustomplot.so (GNU/Linux)或qcustomplot.dll(MSWindows) file。接下来说明如何编译qcustomplot库:

首先,从下载地址下载QCustomPlot-sharedlib,然后拷贝qcustomplot.h和qcustomplot.cpp到与qcustomplot-sharedlib同级的目录下,然后在命令行模式进入sharedlib-compilation目录,运行qmakemingw32-make稍等片刻就会产生俩个文件夹debug和release,里面分别有qcustomplot库的debug和release版本,windows是.dll,linux是.a(而官网说的是.so,有点出入?)然后怎么使用qcustomplot很简单,我就不说了- -

注意:如果你使用的Qt版本在5.0以上,需要在.pro文件中的QT变量加上printsupport,

[cpp] view plain copy print?

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

这是因为Qt老版本不支持widgets和printsupport。

如果你是用vs编程的话,则按照以下方式

//1-将.h和.cpp拷贝到工程目录并加入到工程

qcustomplot.cpp

qcustomplot.h

//2-pro文件加入

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

//3-ui加入构建

首先加入QWidget

然后提升

类名QCustomPlot并加入

//4-编程

cpp中引用qcustomplot.h

如果你是用QT creator编程的话,则在.pro文件中添加

QT += printsupport

ClgBar::ClgBar(QWidget *parent) :

    QDialog(parent),

    ui(new Ui::ClgBar)

{

    ui->setupUi(this)

    QCustomPlot *  m_rectPlot = new QCustomPlot

    ui->verticalLayout->addWidget( m_rectPlot )

    m_rectPlot->xAxis->setLabel("参数")

    m_rectPlot->yAxis->setLabel("个数")

    QLinearGradient gradient(0, 0, 0, 400)

    gradient.setColorAt(0, QColor(218, 218, 218))

    m_rectPlot->setBackground(QBrush(gradient))

    QCPBars *bars = new QCPBars(m_rectPlot->xAxis, m_rectPlot->yAxis)

    bars->addData(1.0, 20.0)

    bars->setName(tr("测试"))

    bars->setPen(QPen(QColor(0,255,0)))

    bars->setBrush(QBrush(QColor(255,255,0)))

    m_rectPlot->rescaleAxes()

    m_rectPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables)

    m_rectPlot->replot()

}

QCPBars *bars = new QCPBars(m_rectPlot->xAxis, m_rectPlot->yAxis)

    bars->setWidth(2)

    QVector xLineVector, yLineVector

    xLineVector <<1 <<4 <<8 <<12 <<16 <<20 <<24

    yLineVector <<4 <<1 <<2 <<4 <<5 <<6 <<7

    //bars->setData(xLineVector, yLineVector)

    bars->addData(xLineVector, yLineVector)

    //bars->addData(10, 20.0)//添加一个

    bars->setName(tr("测试"))

    bars->setPen(QPen(QColor(255,0,0)))//边框夜色

    bars->setBrush(QBrush(QColor(255,255,0)))

    //m_rectPlot->rescaleAxes()//缩放坐标轴

    //设置为可拖拽、 可放大缩小、可选中

    m_rectPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables)

    m_rectPlot->replot()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11528004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存