今晚把qwt的编译,安装,初级使用放上来,以便需要的人,能更快部署好编程环境,不至于每次都像我这样花很多时间。

 

注意:Qtcreater使用的是什么编译器编译出来的,就要用那个编译器来编译qwt。

我的vs编译器是vs2012,并且qt构件是64位的。

 

下载:

去 SF下载最新的Qwt版本,我现在的版本是6.1.0  下载地址(左键新标签打开),并且解压到一个文件夹。

用qtcreater编译:

  用QtCreater打开文件夹里面的qwt.pro文件,右击qwt项目,依次点击,‘qmake’,‘构建’

用vs2012命令行编译:

  在vs2012程序目录中打开:‘打开 VS2012 x64 本机工具命令提示’(如果最后不成功,可以尝试其他本机工具命令提示)

  cd到qwt-6.1.0目录

  调用qt5的bin文件夹下的qmake,我的路径是E:\QT5\5.1.1\msvc2012_64_opengl\bin\qmake.exe

  所以在命令提示符下:E:\QT5\5.1.1\msvc2012_64_opengl\bin\qmake.exe qwt.pro

  完成后输入:nmake

到这里,qtcreater编译后vs2012编译都完成了

安装:

  在‘打开 VS2012 x64 本机工具命令提示’下,键入:nmake install,会自动安装到C:\qwt-6.1.0目录下

  如果有需要修改路径,可以修改qwt-6.1.0源文件下的qwtconfig.pri文件

  为了便于移动到其它的电脑,我喜欢添加到工程的做法是:

    C:\Qwt-6.1.0\lib目录加入到系统PATH变量里面

    把C:\Qwt-6.1.0\plugins\designer加入到5.1\qt\plugins\designer

    在新建qwt工程的时候:在pro文件最后加上

win32:CONFIG(release, debug|release):

 INCLUDEPATH += E:\Others\QT5\Qwt-6.1.0\include \

 LIBS += -LE:\Others\QT5\Qwt-6.1.0\lib\ -lqwtd

Config += qwt

就可以正常编译文件了

 

示例:在新建的项目main.cpp中

#include <qapplication.h>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_grid.h>
#include <qwt_symbol.h>
#include <qwt_legend.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QwtPlot plot;
    plot.setTitle( "Plot Demo" );
    plot.setCanvasBackground( Qt::white );
    plot.setAxisScale( QwtPlot::yLeft, 0.0, 10.0 );
    plot.insertLegend( new QwtLegend() );

    QwtPlotGrid *grid = new QwtPlotGrid();
    grid->attach( &plot );

    QwtPlotCurve *curve = new QwtPlotCurve();
    curve->setTitle( "Some Points" );
    curve->setPen( Qt::blue, 4 ),
    curve->setRenderHint( QwtPlotItem::RenderAntialiased, true );

    QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,
        QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );
    curve->setSymbol( symbol );

    QPolygonF points;
    points << QPointF( 0.0, 4.4 ) << QPointF( 1.0, 3.0 )
        << QPointF( 2.0, 4.5 ) << QPointF( 3.0, 6.8 )
        << QPointF( 4.0, 7.9 ) << QPointF( 5.0, 7.1 );
    curve->setSamples( points );

    curve->attach( &plot );

    plot.resize( 600, 400 );
    plot.show();

    return a.exec();
}
V

相关文章: