Qt常用的图表第三方库,有Qwt和kdChart两种,Qwt做的还是比较好一些,让人感觉很专业,下面是在网上收集到的小程序,供大家参考和学习,也为自己进步做基础。

使用QWT曲线库时,在工程文件pro中加入以下路径,否则不能编译通过:

DEFINES += QWT_DLL
CONFIG += qwt
LIBS +=-L"D:/Qt/4.8.5/lib" -lqwtd             //换上你自己QWT路径
INCLUDEPATH +=D:/Qt/4.8.5/include/QtQwt       //换上你自己QWT路径

程序1:使用Qwt库画波形

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QwtPlot plot(QwtText("CppQwtExample1"));
    plot.resize(640,400);
    //设置坐标轴的名称
    plot.setAxisTitle(QwtPlot::xBottom, "x->");
    plot.setAxisTitle(QwtPlot::yLeft, "y->");
    //设置坐标轴的范围
    plot.setAxisScale(QwtPlot::xBottom, 0.0, 2.0 * M_PI);
    plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);
    //设置右边标注
    plot.insertLegend(new QwtLegend(), QwtPlot::RightLegend);
    //使用滚轮放大/缩小
    (void) new QwtPlotMagnifier( plot.canvas() );
    //使用鼠标左键平移
    (void) new QwtPlotPanner( plot.canvas() );
    //计算曲线数据
    QVector xs;
    QVector ys;
    for (double x = 0; x < 2.0 * M_PI; x+=(M_PI / 10.0))
    {
        xs.append(x);
        ys.append(qSin(x));
    }
    //构造曲线数据
    QwtPointArrayData * const data = new QwtPointArrayData(xs, ys);
    QwtPlotCurve curve("Sine");
    curve.setData(data);//设置数据
    curve.setStyle(QwtPlotCurve::Lines);//直线形式
    curve.setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲线更光滑
    curve.setPen(QPen(Qt::blue));//设置画笔
    curve.attach(&plot);//把曲线附加到plot上
    plot.show();
    return a.exec();
}