怎么把qwt添加到qt中使用

合集下载

qwt的用法

qwt的用法

qwt的用法Qwt是一个基于Qt的图形库,它提供了一系列的图形控件和绘图工具,可以用于绘制各种类型的图表和曲线。

Qwt的使用非常简单,只需要在Qt项目中添加Qwt库,然后就可以使用Qwt提供的各种控件和函数来绘制图表和曲线了。

Qwt的安装和配置Qwt的安装非常简单,只需要下载Qwt的源代码,然后编译安装即可。

Qwt的源代码可以从官方网站上下载,也可以从GitHub上下载。

Qwt的编译需要依赖Qt库,因此在编译之前需要先安装Qt 库。

Qwt的配置也非常简单,只需要在Qt项目中添加Qwt库即可。

在Qt Creator中,可以通过以下步骤来添加Qwt库:1. 在Qt Creator中打开项目,然后选择“项目”菜单,点击“添加库”按钮。

2. 在弹出的对话框中选择“外部库”,然后点击“下一步”。

3. 在“库文件”页面中,点击“添加”按钮,然后选择Qwt库的路径和名称。

4. 在“头文件”页面中,点击“添加”按钮,然后选择Qwt库的头文件路径。

5. 点击“完成”按钮,完成Qwt库的添加。

Qwt的控件和函数Qwt提供了一系列的控件和函数,可以用于绘制各种类型的图表和曲线。

以下是Qwt提供的一些常用控件和函数:1. QwtPlot控件:用于绘制二维图表和曲线。

2. QwtPlotCurve控件:用于绘制曲线。

3. QwtPlotGrid控件:用于绘制网格线。

4. QwtPlotMarker控件:用于绘制标记。

5. QwtLegend控件:用于显示图例。

6. QwtScaleWidget控件:用于显示坐标轴。

7. QwtScaleDraw函数:用于绘制坐标轴刻度。

8. QwtText函数:用于绘制文本。

9. QwtPlotZoomer控件:用于缩放图表。

10. QwtPlotPanner控件:用于平移图表。

Qwt的使用示例以下是一个简单的Qwt使用示例,用于绘制一条正弦曲线:```cpp#include <qwt_plot.h>#include <qwt_plot_curve.h>#include <qwt_legend.h>#include <qwt_legend_item.h>#include <qwt_scale_draw.h>#include <qwt_text.h>#include <qwt_plot_zoomer.h>#include <qwt_plot_panner.h>#include <qwt_plot_grid.h>#include <qwt_plot_marker.h>#include <qwt_symbol.h>#include <qwt_plot_renderer.h>#include <QApplication>#include <QVBoxLayout>#include <QHBoxLayout>#include <QPushButton>#include <cmath>int main(int argc, char *argv[]){QApplication app(argc, argv);// 创建QwtPlot控件QwtPlot *plot = new QwtPlot();plot->setTitle("Sin Curve");plot->setCanvasBackground(Qt::white);// 创建QwtPlotCurve控件QwtPlotCurve *curve = new QwtPlotCurve();curve->setTitle("Sin Curve");curve->setPen(QPen(Qt::red));curve->setRenderHint(QwtPlotItem::RenderAntialiased, true);// 创建数据const int N = 100;double x[N], y[N];for (int i = 0; i < N; i++) {x[i] = i * 0.1;y[i] = sin(x[i]);}// 设置数据curve->setSamples(x, y, N);// 添加QwtPlotCurve控件到QwtPlot控件中curve->attach(plot);// 创建QwtPlotGrid控件QwtPlotGrid *grid = new QwtPlotGrid();grid->setPen(QPen(Qt::gray, 0, Qt::DotLine));grid->attach(plot);// 创建QwtPlotMarker控件QwtPlotMarker *marker = new QwtPlotMarker();marker->setLabel("Max Value");marker->setLabelAlignment(Qt::AlignRight | Qt::AlignTop); marker->setLabelOrientation(Qt::Vertical);marker->setLineStyle(QwtPlotMarker::HLine);marker->setLinePen(QPen(Qt::green, 0, Qt::DashLine));marker->setYValue(1.0);marker->attach(plot);// 创建QwtLegend控件QwtLegend *legend = new QwtLegend();legend->setDefaultItemMode(QwtLegendData::Checkable); plot->insertLegend(legend, QwtPlot::RightLegend);// 创建QwtPlotZoomer控件QwtPlotZoomer *zoomer = new QwtPlotZoomer(plot->canvas());zoomer->setMousePattern(QwtEventPattern::MouseSelect2, Qt::RightButton);zoomer->setZoomBase(true);// 创建QwtPlotPanner控件QwtPlotPanner *panner = new QwtPlotPanner(plot->canvas());panner->setMouseButton(Qt::MidButton);// 创建QPushButton控件QPushButton *saveButton = new QPushButton("Save");saveButton->setFixedSize(100, 30);// 创建布局QVBoxLayout *vLayout = new QVBoxLayout();QHBoxLayout *hLayout = new QHBoxLayout();hLayout->addWidget(saveButton);hLayout->addStretch();vLayout->addWidget(plot);vLayout->addLayout(hLayout);// 创建窗口QWidget *window = new QWidget();window->setLayout(vLayout);window->setWindowTitle("Qwt Example");window->resize(800, 600);// 显示窗口window->show();// 运行应用程序return app.exec();}```以上代码中,我们首先创建了一个QwtPlot控件,然后创建了一个QwtPlotCurve控件,用于绘制正弦曲线。

Qtcreator安装第三方插件QWT

Qtcreator安装第三方插件QWT

在qwt的工程文件中加入:
LIBS += -L”c:/Qt/2010.05/qt/lib” -lqwt INCLUDEPATH += c:/Qt/2010.05/qt/include/qwt
11:重新打开qtcreator 就可以看见qdesigner里面有了QWT控件了。
注意版本(VS2013 x86本机,跟Qt的版本一样)
6:进入qwt-6.1.2目录下运行nmake,这里需要等一段时间(出现warning不要紧,不出现error就行)
7:运行nmake install
8:将qwt-6.1.2\lib下的qwtd.dll 、qwt.dll拷贝到Qt5.4.1\5.4\msvc2013\bin,将qwtd.lib、qwt.lib拷贝到Qt5.4.1\5.4\msvc2013\lib
4:解压后的qwt-6.1.2文件夹下,按Shift+右键“在此处打开命令窗口”,运行qmake(使用qmake -v查看是否是你需要的Qt版本)
5:打osoft Visual Studio 12.0\Common7\Tools\Shortcuts”命令工具,
9:再将qwt-6.1.2\designer\plugins\designer目录下的qwt_designer_plugin.dll和qwt_designer_plugin.lib拷贝到Qt5.4.1\5.4\msvc2013_opengl\plugins\designer目录下。
10:再将qwt-6.1.2\src目录下的所有文件拷贝到Qt5.4.1\5.4\msvc2013\include\Qwt中(新建Qwt文件夹)目录下。这样就完成了Qwt的编译和配置工作了。
安装QWT控件注意事项

QT QWT类使用方法总结

QT QWT类使用方法总结

QT QWT类使用方法总结p, li { white-space: pre-wrap; }鼠标滚轮放大缩小:1.QwtPlotMagnifier *PM = new QwtPlotMagnifier( ui->qwtPlot->canvas());鼠标左键拖动波形:1.QwtPlotPanner *PQ= new QwtPlotPanner( ui->qwtPlot->canvas());鼠标左键选择区域放大:(右键还原)1.QwtPlotZoomer* zoomer = new QwtPlotZoomer( ui->qwtPlot->canvas() );2.zoomer->setRubberBandPen( QColor( Qt::black ) );3.zoomer->setTrackerPen( QColor( Qt::black ) );4.zoomer->setMousePattern(QwtEventPattern::MouseSelect2,Qt::RightButton, Qt::ControlModifier );5.zoomer->setMousePattern(QwtEventPattern::MouseSelect3,Qt::RightButton );设置X轴下面标识:1.ui->qwtPlot->setAxisTitle(QwtPlot::xBottom,"x -->");设置X轴取值范围:1.ui->qwtPlot->setAxisScale(QwtPlot::xBottom, 0.0, 30.0);设置Y轴左边标识(竖着显示):1.ui->qwtPlot->setAxisTitle(QwtPlot::yLeft,"y -->");设置Y轴取值范围:1.ui->qwtPlot->setAxisScale(QwtPlot::yLeft,-1.0, 1.0);创建一个sin()曲线:1.QwtPlotCurve *cSin = new QwtPlotCurve("y = sin(x)");2.cSin->setRenderHint(QwtPlotItem::RenderAntialiased);3.cSin->setLegendAttribute(QwtPlotCurve::LegendShowLine,true);4.cSin->setPen(QPen(Qt::blue));5. cSin->attach(ui->qwtPlot);6.cSin->setData(new FunctionData(::sin));其中FunctionData为:class FunctionData:public QwtSyntheticPointData {public:FunctionData(double(* y)(double)):QwtSyntheticPointData(100),d_y(y){}virtualdouble y(double x)const {return d_y(x);}private:double(*d_y)(double);};1.class FunctionData:public QwtSyntheticPointData2.{3.public:4. FunctionData(double(*y)(double)):5. QwtSyntheticPointData(100),6. d_y(y)7. {8. }9. virtual double y(double x)const10. {11. return d_y(x);12. }13.private:14. double(*d_y)(double);15.};创建波形标识:(Y=0)QwtPlotMarker*mY=new QwtPlotMarker();mY->setLabel(QString:: fromLatin1("y=0"));mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop);mY->set LineStyle(QwtPlotMarker::HLine);mY->setYValue(0.0);mY->attach(ui->qwtPlot);1.QwtPlotMarker *mY = new QwtPlotMarker();2. mY->setLabel(QString::fromLatin1("y = 0"));3. mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop);4. mY->setLineStyle(QwtPlotMarker::HLine);5. mY->setYValue(0.0);6. mY->attach(ui->qwtPlot);创建波形标识:(X=PI/2) QwtPlotMarker*mX=new QwtPlotMarker();mX->setLabel(QSt ring::fromLatin1("x=PI/2"));mX->setLabelAlignment(Qt::AlignLeft|Qt::AlignBott om);mX->setLabelOrientation(Qt::Vertical);mX->setLineStyle(QwtPlotMarker::VLi ne);mX->setLinePen(QPen(Qt::black,1,Qt::DashDotDotLine));mX->setXValue(M_PI/ 2);mX->attach(ui->qwtPlot);1.QwtPlotMarker *mX = new QwtPlotMarker();2. mX->setLabel(QString::fromLatin1("x = PI/2"));3. mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom);4. mX->setLabelOrientation(Qt::Vertical);5. mX->setLineStyle(QwtPlotMarker::VLine);6. mX->setLinePen(QPen(Qt::black, 1, Qt::DashDotDotLine));7. mX->setXValue(M_PI/2);8. mX->attach(ui->qwtPlot);设置qwtPlot的画布:(圆角矩形) ui->qwtPlot->canvas()->setLineWidth(1);ui->qw tPlot->canvas()->setFrameStyle(QFrame::Box|QFrame::Plain);ui->qwtPlot->canvas ()->setBorderRadius(15);1.ui->qwtPlot->canvas()->setLineWidth( 1 );2. ui->qwtPlot->canvas()->setFrameStyle( QFrame::Box | QFrame::Plain );3. ui->qwtPlot->canvas()->setBorderRadius( 15 );设置qwtPlot的画布:(白色填充)QPalette canvasPalette(Qt::white);canvasPalet te.setColor(QPalette::Foreground,QColor(133,190,232));ui->qwtPlot->canvas()-> setPalette(canvasPalette);1.QPalette canvasPalette( Qt::white );2. canvasPalette.setColor( QPalette::Foreground, QColor( 133, 190, 232 ));3. ui->qwtPlot->canvas()->setPalette( canvasPalette );设置整个界面的颜色:QPalette pal=palette();const QColor buttonColor=pal.color(Q Palette::Button);QLinearGradient gradient(0,0,0,1);gradient.setCoordinateMode (QGradient::StretchToDeviceMode);gradient.setColorAt(0.0,Qt::white);gradient. setColorAt(0.7,buttonColor);gradient.setColorAt(1.0,buttonColor);pal.setBrush (QPalette::Window,gradient);setPalette(pal);1.QPalette pal = palette();2. const QColor buttonColor = pal.color( QPalette::Button );3. QLinearGradient gradient( 0, 0, 0, 1 );4. gradient.setCoordinateMode( QGradient::StretchToDeviceMode );5. gradient.setColorAt( 0.0, Qt::white );6. gradient.setColorAt( 0.7, buttonColor );7. gradient.setColorAt( 1.0, buttonColor );8. pal.setBrush( QPalette::Window, gradient );9. setPalette( pal );。

qwt的用法

qwt的用法

qwt的用法Qwt是一个C++图形库,用于在Qt应用程序中添加可视化元素。

它提供了基于Qt的绘图和布局机制,可以轻松地在应用程序中添加曲线绘图、仪表、图形控件和其它可视化元素。

以下是使用Qwt的步骤:1. 安装Qwt库:首先需要从官网下载Qwt库并按照它们的指示进行安装。

警告:Qwt只能与与您的Qt版本匹配的Qwt版本一起使用。

2. 将Qwt添加到Qt项目:将Qwt库添加到Qt项目中需要在.pro文件中添加相应的INCLUDEPATH和LIBS。

例如:INCLUDEPATH += /usr/include/qwtLIBS += -lqwt3. 创建一个QwtPlot对象:从QWidget派生一个QwtPlot对象,并使用addCurve()方法添加绘图曲线:QwtPlot *plot = new QwtPlot(this);plot->setTitle("My Plot");QwtPlotCurve *curve = new QwtPlotCurve("My Curve");curve->setData(xData, yData);curve->attach(plot);4. 设置绘图属性:可以通过QwtPlot类的方法来设置绘图属性,如设置坐标轴、网格线、标题等。

plot->setAxisTitle(QwtPlot::xBottom, "X Axis");plot->setAxisTitle(QwtPlot::yLeft, "Y Axis");plot->insertLegend(new QwtLegend(), QwtPlot::RightLegend);5. 显示绘图:将QwtPlot对象添加到应用程序中并显示:plot->resize(600, 400);plot->show();以上是Qwt的基本用法。

QWT的应用

QWT的应用
中原油田分公司物探研究院
一、QWT的概念
• QWT为程序提供图形用户接口 (GUI)组件和 一组实用类,基于二维方式窗体部件来显示数据。 • 数据源以数值、数组或一组浮点数等方式提供。
• 输出方式可以是: Curves(曲线),Slider(滚动条), Dials(拨号盘),Compasses(仪表盘) scales(进度尺), sliders(滑动块), thermometers(温度计), wheels(轮子), knobs(旋钮)等窗口元件。
中原油田分公司物探研究院
三、QWT的安装
Qwt5.2版在Qt4.3+minGW 环境下的安装与使用
qwt的安装很简单,可以参看它的install文档。
1.解开下载下来的zip文件,比如解开到d:\qt\qwt-5.1.1目录下,修改 目录下的qwtconfig.pri文件里面的安装路径,比如准备将它安装到 d:\qt\qwt目录下,则 win32 { INSTALLBASE = D:/qt/qwt-5.1.1 } 2.从qt的cmd环境进入qwt-5.1.1目录,运行 qmake qwt.pro make make install 3.把d:\qt\qwt\lib目录加入到系统PATH变量里面。
给6组数据赋值 X值的27点为步长节点 Y值是两个三角函数的积
中原油田分公司物探研究院
四、QWT的例子
QwtPlotCurve crv[6]; QwtSymbol sym; i = 0; sym.setStyle(QwtSymbol::Cross); sym.setPen(QColor(Qt::black)); sym.setSize(5); crv[i].setSymbol(sym); crv[i].setPen(QColor(Qt::darkGreen)); crv[i].setStyle(QwtPlotCurve::Lines); crv[i].setCurveAttribute(QwtPlotCurve::Fitted); i++; sym.setStyle(QwtSymbol::Ellipse); sym.setPen(QColor(Qt::blue)); sym.setBrush(QColor(Qt::yellow)); sym.setSize(5); crv[i].setSymbol(sym); crv[i].setPen(QColor(Qt::red)); crv[i].setStyle(QwtPlotCurve::Sticks); i++; crv[i].setPen(QColor(Qt::darkBlue)); crv[i].setStyle(QwtPlotCurve::Lines); i++;

QWT6.1.0详细傻瓜式安装教程

QWT6.1.0详细傻瓜式安装教程

Provided by Trust目录阅读前必看 (1)搭载环境 (3)《详细安装版》 (4)一、下载好全部软件资料: (4)二、安装Qt4.8.5库 (5)三、编译Qwt6.1.0源码 (9)四、给大家看些东西增加一下成就感吧 (14)五、编译QtCreator2.6.2源码(很关键的一步) (16)六、配置QtCreator环境 (21)七、建立工程调试 (26)《快速安装版》 (31)前言: (31)一、下载资料 (31)二、安装Qt4.8.5库 (32)三、复制粘贴工作 (32)四、配置QtCreator环境 (32)五、建立工程调试 (32)作者有话说: (32)阅读前必看1、什么是qwt ?答:如果还要我回答的话,你可以先把这个文档删了,然后再去了解一下。

2、为什么会写这个教程呢?答:因为安装qwt困扰了我一年了,记得第一次安装的时候只能打开它的example,,QtCreator(简称QTC)里面的Designer没有集成qwt的控件。

而我的真正目的是在QTC里面的Designer里面集成qwt的控件,除了这样,以后自己设计的控件也可以集成到里面。

自从上一次失败后,就没有再碰过了。

直到今天的机缘巧合,再次去研究了一下。

经过不断地查资料,不断地卸载安装,不断地重复试验,终于集成成功并且正常运行。

看到网上还有很多人在纠结这个问题,于是决定花时间写这个教程出来。

3、你完成这个集成任务花了多少时间?答:超过12个小时(包括写教程),因为我天资比较不好,接受事物能力比较差,所以花的时间比常人要多很多。

但是我愿意把这十多个小时的劳动成果跟大家分享一下,也希望能帮助更多的人少走歪路。

4、网上大把关于qwt安装教程,你写来干嘛?答:网上大多数教程都是比较零散的,如果你能找到一个比这个教程更加详细,更加容易懂,安装成功率更加高的教程,请你马上告诉我,我会把这个资源删除掉。

也许网上流传一个很经典的教程:《浅入深出在Win XP上傻瓜式编译安装Qwt》,这个教程是我第一次安装qwt时候就看的,写得挺好,但是按照他的方法,我还没有安装成功。

qwt的使用实例

qwt的使用实例

qwt的使⽤实例在.pro⽂件中加⼊INCLUDEPATH += /usr/include/qwtLIBS += -L"/usr/lib/" -lqwt头⽂件:1 #include <qapplication.h>2 #include <qwt_plot.h>3 #include <qwt_plot_curve.h>4 #include <qwt_plot_grid.h>5 #include <qwt_symbol.h>6 #include <qwt_legend.h>1int main( int argc, char **argv ) 2 { 3 QApplication a( argc, argv );1 QwtPlot plot;2 plot.setTitle( "Plot Demo" );3 plot.setCanvasBackground( Qt::white );4 plot.setAxisScale( QwtPlot::yLeft, 0.0, 10.0 );5 plot.insertLegend( new QwtLegend() );新建⼀个QwtPlot构件,即基本的绘图表格设置标题 "Plot Demo"设置背景⽩⾊ //canvas帆布void QwtPlot::setAxisScale ( int axisId, double min, double max, double stepSize = 0 )Disable autoscaling and specify a fixed scale for a selected axis.In updateAxes() the scale engine calculates a scale division from the specified parameters, that will be assigned to the scale widget. So updates of the scale widget usually happen delayed with the next replot.ParametersaxisId min max stepSizeAxis index Minimum of the scale Maximum of the scale Major step size.If step == 0 , the step size is calculated automatically using the maxMajorsetting.对坐标尺⼨的初始化,设置左边y 轴坐标的范围为0~10,坐标为⾮⾃适应.不会⾃动变化设置新的⼀个图例 //legend图例1 QwtPlotGrid *grid = new QwtPlotGrid();2 grid->attach( &plot );View Code在表盘中插⼊⽹格1 QwtPlotCurve *curve = new QwtPlotCurve();2 curve->setTitle( "Some Points" );3 curve->setPen( Qt::blue,4 ),4 curve->setRenderHint( QwtPlotItem::RenderAntialiased, true );新建⼀个曲线设置标题为"Some Points"设置画笔为蓝⾊,宽度4设置曲线抗锯齿1 QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,2 QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );3 curve->setSymbol( symbol );设置符号格式,主要⽤来标记点1 QPolygonF points;2 points << QPointF( 0.0, 4.4 ) << QPointF( 1.0, 3.0 )3 << QPointF( 2.0, 4.5 ) << QPointF( 3.0, 6.8 )4 << QPointF( 4.0, 7.9 ) << QPointF( 5.0, 7.1 );5 curve->setSamples( points );新建⼀个QPolygonF类(Qt中⾃带点集f->float)其中void QwtPlotCurve::setSamples ( QwtSeriesData < QPointF > ∗ data )Assign a series of pointssetSamples() is just a wrapper for setData() without any additional value - beside that it is easier to find for the developer.1 curve->attach( &plot );23 plot.resize( 600, 400 );4 plot.show();56return a.exec();7 }⽣成并画图下⾯是源码⽅便⼤家复制#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::green );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::Diamond,QBrush( Qt::black ), 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();}View Code。

Windows环境下QWT安装及配置

Windows环境下QWT安装及配置

Windows环境下QWT安装及配置**1.QWT下载路径qwt-6.1.2.zip:qwt相关源代码qwt-6.1.2.pdf:⽤户⼿冊,包含安装说明和类库说明qwt-6.1.2.qch:qwt帮助⽂档,能够添加到Qt Creator中.2.Qwt编译,主要有两种:a)採⽤命令⾏编译命令⾏编译这个就要依据⾃⼰安装的Qt版本号⽽定。

笔者安装的是MinGw版,所以下⾯命令⾏操作针对此版本号⽽⾔,其它版本号的操作能够參看qwt-6.1.2.pdf。

1.解压缩qwt-6.1.2.zip,通过cmd进⼊到qwt-6.1.2⽬录内,运⾏:qmake qwt.pro完毕后运⾏:mingw32-make最后运⾏:mingw32-make install然后就是等等等等……好不easy编译安装完后,可能会有⼈有疑问。

我们编译安装的qwt去哪了?这时你解压的⽬录qwt-6.1.2下有⼀个⽂件qwtconfig.pri。

能够打开看看:QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]unix {QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION# QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-qt-$$QT_VERSION}win32 {QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION# QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION-qt-$$QT_VERSION}QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/docQWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/includeQWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib⾮常好理解,这⾥就是指定了你安装的路径了。

QT及其插件QWT安装

QT及其插件QWT安装

QT及其插件QWT安装
1.点击qt-sdk-win-opensource-2010.04进行安装
2.选择安装目录(比如D:\)
3.开始安装QWT
4.打开QT Command Prompt
5.如下
6.解压QWT并复制到与QT Creater 同个盘(如D:\)
7.输入如下命令行
(此时它所在的目录应该包含这些内容的)
9.再输入以下三条命令(第二与第三命令运行时间比较久耐心等待)
qmake qwt.pro
mingw32-make
mingw32-make install
10. 再输入以下三条命令(第三命令运行时间比较久耐心等待)
cd examples
qmake examples.pro
mingw32-make
11.在编译完成qwt目录(不改变的话应该是C:\Qwt-6.0.1)下,有lib目录和designer 目录,
将lib目录里的qwt5.dll文件拷贝至qt sdk的目录下的qt目录的bin目录中(比如本菜菜为D:\qt\qt\bin),将libqwt5.a文件拷贝至对应的lib目录(D:\qt\qt\bin\lib),最后将designer目录下的plugins目录的designer目录下的libqwt_designer_plugin5.a 文件和qwt_designer_plugin5.dll拷贝到跟上面一样对应的plugins目录下的
designer目录(如D:\qt\qt\bin\qt\plugins\designer),看起来十分繁琐,其实是非常简单的过程。

10.再将程序拷到D:\qwt-6.0.1\examples里就能运行了。

Qt绘图 使用QWT绘制科学图表、绘图

Qt绘图 使用QWT绘制科学图表、绘图

Qwt是一个基于LGPL版权协议的开源项目,其目标是提供一组2D的窗体库显示技术领域的数据,数据源以浮点数组或范围的方式提供,输出方式可以是Curves(曲线),Slider (滚动条),Dials(圆盘),compasses(仪表盘)等等。

该工具库基于Qt开发,所以也继承了Qt的跨平台特性,据原作者文档所说,该项目在Qt-win/Qt-x11/Qt-embedded (qvfb环境)上都测试过,运行正常。

项目的主页在:/在网上搜了一下,发现关于qwt的中文资料实在很少,基本上只有关于编译和安装的文章。

实际上经过笔者实践,Qwt的编译和运行实在乏善可陈,qmake;make就可以搞定,没什么可memo的东西,所以这篇文章将以扫盲为主,介绍Qwt的feature。

当然按照正常的顺序,我们还是从编译安装开始。

从svn服务器上下载最新代码:svnco https:///svnroot/qwt/trunk/qwt进入qwt目录,运行你电脑上qt4对应的qmake,再运行make编译。

如笔者环境中是$ cd qwt$ export PATH=/usr/local/Trolltech/Qt-4.5.1/bin/:$PATH$ qmake$ make编译要花个几分钟的时间。

成功后在lib下会生成libqwt.so*文件,并且examples也参与编译,生成的binary在examples/bin下,我们可以运行这些例子初步查看qwt的功能。

$export LD_LIBRARY_PATH=$PWD/lib$cd examples/bin$ ./simplesimple是qwt自带的例子中最简单的一个,一共只有一百来行的代码,实现了数学中的正弦函数(sin())和余弦函数(cos())曲线。

如下图:这个例子里用到的核心类有四个(以下内容是笔者的理解,有可能有不对的地方,请酌情阅读):QwtPlot类似一个2D绘图的容器,里面可以放其他的QwtPlotItem派生类对象,比如本例子中使用的QwtPlotMarker等。

如何在QT中运行QWT

如何在QT中运行QWT

标题:如何在QT中运行QWT作者:胡振凯日期:2014/08/16运行环境win8.1专业版。

目的:QT中的GUI库不全,使用QWT库可以编程更容易。

从使用QT,到添加QWT库步骤:1.Download Qt 5.3.1 for Windows 32-bit (MinGW 4.8.2, OpenGL, 735 MB) (Info) ,并安装到D:\Qt中(默认为C盘,但我不喜欢什么都放C里)。

●下载过VS2013版本,运行nmake时出现错误,找不到stddef.h文件。

2.修改环境变量的系统变量的path●打开控制面板,系统,高级设置,环境变量,path●添加D:\Qt\Qt5.3.1\5.3\mingw482_32\bin,(包含qmake.exe)●添加D:\Qt\Qt5.3.1\Tools\mingw482_32\bin (包含mingw32-make.exe)3.Google搜索qwt,进入官网,下载并解压qwt-6.1.0。

(下载到哪都无所谓)。

4.修改qwtconfig.pri文件。

修改安装后路径。

(我要把qwt安装到d:\Qwt-6.1.0中,默认是c盘。

)●win32 {QWT_INSTALL_PREFIX = d:/Qwt-$$QWT_VERSION}5.启动qt命令行程序(类似win dos的那个东东),compile & install qwt文件。

Qwt下载下来的都是源代码,要做成lib和dll文件,就需要编译和安装(拷贝)两个步骤。

●进入qwt-6.1.0路径,输入命令qmake。

在路径下生成makefile文件。

●输入命令mingw32-make,编译所有cpp文件。

●输入命令mingw32-make install,按照qwtconfig.pri的文件设置,输出到安装(拷贝)目录d:/Qwt-6.1.0。

6.设置环境变量的系统变量,添加path,D:\Qwt-6.1.0\lib。

Qt使用QWT绘制柱状图详解

Qt使用QWT绘制柱状图详解

17m_pChartItemPress->attach(m_pChartPress);
18
CustomBarChartItem该类是我对QwtPlotBarChart类的重写。
其中,InsertBarData()该函数设置了每个柱状体对应的不同颜色值。
插入数据之后,进行数据绑定。
InsertBarData()中调用QwtPlotBarChart::itemChanged(),让类中自动调用specialSymbol() 该函数进行颜色值更改
有的时候我们会遇到这样一种功能,需要在柱状图中显示不同颜色的柱状体,每个主状态代表的状态不同,那么如果只是用简 单的QChart是难以实现的。
QT中提供了一个叫做QWT的库。QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项 目,可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显 示数据,数据源以数值,数组或一组浮点数等方式提供,输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆 盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。
直接上代码更直接一些
?
1
2 3 4
void CustomBarChartColumnSymbol::draw(QPainter *painter, const QwtColumnRect &rect) const
{ QwtColumnRect rectNew = rect;
5 if (m_nMoveLens > 0)
? 1setLayoutPolicy(FixedSampleSize); 2setLayoutHint(nWidth); //设定了柱状体的宽度

【Qt编程】基于QWT的曲线绘制及图例显示操作——有样点的实现功能

【Qt编程】基于QWT的曲线绘制及图例显示操作——有样点的实现功能

【Qt编程】基于QWT的曲线绘制及图例显⽰操作——有样点的实现功能在⼀⽂中,我们完成了QWT的安装,这篇⽂章我们讲讲基础曲线的绘制功能。

⾸先,我们新建⼀个Qt应⽤程序,然后⼀路默认即可。

这时,你会发现总共有:mainwindow.h,mainwindow.cpp,main.cpp,mainwindow.ui四个⽂件。

然后,选中项⽬,添加新⽂件,添加⼀个c++类,我们假设命名为PlotLines,基类选择QwtPlot,选择继承⾃QWidget。

接着,在pro⽂件中添加INCLUDEPATH +=D:\Qt\Qt5.3.0\5.3\msvc2010_opengl\include\QWTLIBS+= -lqwtd注意,我这⾥是将绘制曲线单独⽤⼀个类PlotLines表⽰的,⽽不是向参考实例⼀样是直接放在其他类的内部。

所以这⾥我们需要在类的头⽂件中添加关键性语句:#define QWT_DLL最后,在主⽂件main.cpp中添加我们类的头⽂件,并在函数中⽣成该类的实例并显⽰,修改后的main.cpp⽂件如下所⽰:[cpp]1. #include "mainwindow.h"2. #include <QApplication>3. #include"plotlines.h"4. int main(int argc, char *argv[])5. {6. QApplication a(argc, argv);7. // MainWindow w;//这⾥的主窗⼝我们没有使⽤,当然也可以在主窗⼝中显⽰曲线8. // w.show();9.10. PlotLines line;11. line.show();12. return a.exec();13. }PlotLines.h⽂件如下:[cpp]1. #ifndef PLOTLINES_H2. #define PLOTLINES_H3. #define QWT_DLL4. #include<qwt_plot.h>5. #include <qwt_plot_layout.h>6. #include <qwt_plot_canvas.h>7. #include <qwt_plot_renderer.h>8. #include <qwt_plot_grid.h>9. #include <qwt_plot_histogram.h>10. #include <qwt_plot_curve.h>11. #include <qwt_plot_zoomer.h>12. #include <qwt_plot_panner.h>13. #include <qwt_plot_magnifier.h>14.15. #include <qwt_legend.h>16. #include <qwt_legend_label.h>17. #include <qwt_column_symbol.h>18. #include <qwt_series_data.h>19. #include <qpen.h>20. #include <qwt_symbol.h>21. #include <qwt_picker_machine.h>22. class PlotLines : public QwtPlot23. {24. Q_OBJECT25. public:26. explicit PlotLines(QWidget *parent = 0);27.28.29.30.31. private Q_SLOTS:32. void showItem(const QVariant &itemInfo, bool on);//点击图例,显⽰相应的曲线33. };34.35. #endif // PLOTLINES_HPlotLines.cpp⽂件如下:[cpp]1. #include "plotlines.h"2.3. PlotLines::PlotLines(QWidget *parent) :4. QwtPlot(parent)5. {6. setTitle("图的标题");7. //---------设置画布---------//8. QwtPlotCanvas *canvas=new QwtPlotCanvas();9. canvas->setPalette(Qt::white);10. canvas->setBorderRadius(10);11. setCanvas( canvas );12. plotLayout()->setAlignCanvasToScales( true );13.14. //-----------设置x,y坐标和范围--------------//15. setAxisTitle( QwtPlot::yLeft, "ylabel" );16. setAxisTitle( QwtPlot::xBottom, "xlabel" );17. setAxisScale(QwtPlot::yLeft,0.0,10.0);18. setAxisScale(QwtPlot::xBottom,0.0,10.0);19.20. //----------------设置栅格线-------------------//21. QwtPlotGrid *grid = new QwtPlotGrid;22. grid->enableX( true );//设置⽹格线23. grid->enableY( true );24. grid->setMajorPen( Qt::black, 0, Qt::DotLine );25. grid->attach( this );26.27. //-----------------开始画图----------------------//28. QwtPlotCurve *curve=new QwtPlotCurve("curve");29. // curve->setTitle( "信道"+QString( "%1 " ).arg( i+1));30. curve->setPen(Qt::blue,2);//设置曲线颜⾊粗细31. curve->setRenderHint(QwtPlotItem::RenderAntialiased,true);//线条光滑化32.33. QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,34. QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 6, 6) );//设置样本点的颜⾊、⼤⼩35. curve->setSymbol( symbol );//添加样本点形状36.37. QPolygonF points1, points2;//输⼊节点数据QPointF(x,y)38. points1<<QPointF(1,1)<<QPointF(2,2)<<QPointF(3,3)<<QPointF(4,4)<<QPointF(5,5)<<QPointF(6,6)<<QPointF(7,7);39. points2<<QPointF(1,2)<<QPointF(2,3)<<QPointF(3,4)<<QPointF(4,5)<<QPointF(5,6)<<QPointF(6,7)<<QPointF(7,8);40. curve->setSamples(points1);41. curve->attach( this );42. curve->setLegendAttribute(curve->LegendShowLine);//显⽰图例的标志,这⾥显⽰线的颜⾊。

QWT集成到QTcreator

QWT集成到QTcreator

1、下载并安装QT Creator,注意要下载那个近178M的文件,它包含Qt、MinGW、Qt creator;2、解压下载下来的qwt到英文文件夹(如:C:\qwt-5.2.0),启动新的qtcreator(旧的已经被删除了),(2.3.1版本没有下面的内容)打开qwt.pro(C:\qwt-5.2.0\qwt.pro)。

修改qwtconfig.pri,注释掉第51行,# CONFIG += release # release/debug/debug_and_release取消第53行的注释CONFIG += build_all全段如下:# Qt 4win32 {# On Windows you can't mix release and debug libraries.# The designer is built in release mode. If you like to use it# you need a release version. For your own application development you# might need a debug version.# Enable debug_and_release + build_all if you want to build both.#CONFIG += release # release/debug/debug_and_release 51行#CONFIG += release_and_releaseCONFIG += build_all # 53行}else {CONFIG += release # release/debug}然后,build->build all.编译debug和release版本。

安装qwt编译完qwt后,拷贝文件C:\qwt-5.2.0 C:\Qt\2009.05\qtlib\*.dll -> bin\lib\*.a -> lib\designer\plugins\designer\*.* -> plugins\designer\C:\qwt-5.2.0\src\*.h -> include\qwt (新建的文件夹)安装完毕,可以将C:\qwt-5.2.0删除了。

qwt-6.0.2在qtcreator下的编译和运行

qwt-6.0.2在qtcreator下的编译和运行

qwt-6.0.2在qtcreator下的编译和运行
qwt-6.0.2在qt creator下的编译和运行
分类: QT 2011-08-25 15:46 984人阅读评论(3) 收藏举报
今天在书上看到qt下有一个很好的图形界面插件qwt,于是就想着来试一试。

在网上把qwt(版本为6.0.2)下
下来之后,按照网站()上给的提
示译了之后,就可以运行qwt 自带的例子了,接着参照了
网上许多达人的帖子,在designer里也终于可以看到qwt
的控件了,这些都不是今天的我写帖子的重点,因为这些
都可以在网上查到。

重点是,在qt creator里面运行qwt的相关例子,却怎么都不通。

在网上找了一圈,试了无数遍,却依然是怎
么都不行,网上的帖子基本上都是针对5.几的版本写的,
那些方法在6.0.2里面不起作用。

最后终于让我皇天不负
苦心人,在一个哥们(暂且这么称呼吧)的帖子里找到了
方法,他的系统是mac的,我的是xp,我死马权当活马
医,照着弄了下,竟然就成功了。

其实说出来非常简单,那些加什么lib啊什么的都不管用,只需要在pro文件里加一句话就行了:include
(C:\Qwt-6.0.2-svn\features\qwt.prf),如果你编译qwt
的时候什么都没改的话,就直接写着一句就行了。

这样就
可以在qt qcreator里面成功运行qwt了。

不过我始终有个问题没解决,就是现在在designer里面可以看到qwt控件,但是在qt creator却怎么都看不到,如果有哪位牛人知道,希望能不吝赐教。

浅入深出QWT

浅入深出QWT

浅⼊深出QWT浅⼊深出QWT现在看到的本⽂已经是第三版,写这篇博⽂的起初原因是本菜菜最近准备使⽤Qwt开发⼀些功能部件,⽽公司⾥基本是使⽤win Xp系统进⾏开发⼯作,为了便于⽇后的团队开发,所以研究了怎么将qwt库和QtCreator整合起来。

但是由于不是很严谨的态度,但随便的实验感觉成功后,感觉整合没问题后,就轻松地写了篇博⽂,幸亏由于shiroki⼤姐的指出,才发现许多不⾜,甚⾄是严重的错误会误导别⼈。

通过双休⽇的不懈努⼒和研究,总算实验成果,并且证实了本菜菜的思路,⽽且对于Qt更加了解,对以前缺少的知识点也得到了补⾜,这个内容么,也真正做到的浅⼊深出。

在基于Qt绘制科学图表-- Qwt试⽤中,shiroki⼤姐介绍了怎么样在linux下安装qwt,并使⽤qwt,本菜菜经过在winXp操作系统下的不断尝试,发现能快速地使⽤Qt Creator进⾏编译,⽽在开发程序时也能使⽤Qt Creator进⾏,故详细地介绍给⼤家。

⾸先确定你使⽤的是winXP操作系统,并且已经安装了Qt SDK for windows,如果没有安装,可以去Qt官⽅⽹站下载安装包安装,安装的过程⼗分简便,跟普通的windows的EXE安装包没有太⼤区别,指定好路径,⼀路next就可以安装,在安装完成后,也⽆需设置环境变量即可使⽤来编写编译Qt程序。

安装完毕后,即可使⽤QtCreator,然后去下载qwt的源代码,⽬前的版本为qwt-5.2.0,在前⾯⽂章中提供过项⽬主页地址,在项⽬主页地址下可以选择下载对应linux的tar源码压缩包或者对应win的zip源码压缩包,我们选择的⾃然是zip压缩包,然后下载完成后,解压在英⽂路径下的⽬录即可。

有了Qt SDK,qwt的编译过程⾃然就变得简单⽆⽐了,环境变量啊,Qt的lib库啊,⼀切都有Qt SDK帮助,这就是为什么是我想说傻⽠式安装qwt的原因。

相⽐以前的编译,安装和设置环境变量,使⽤Qt Creator可以帮助简化步骤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标题:如何在QT中运行QWT
作者:胡振凯
日期:2014/8/16
修改ver.1 2014/8/23
运行环境win8.1专业版。

目的:QT中的GUI库不全,使用QWT库可以编程更容易。

从使用QT,到添加QWT库步骤:
1.Download Qt 5.3.1 for Windows 32-bit (MinGW 4.8.2, OpenGL, 735 MB) (Info) ,
并安装到D:\Qt中(默认为C盘,但我不喜欢什么都放C里)。

●下载过VS2013版本,运行nmake时出现错误,找不到stddef.h文
件。

2.修改环境变量的系统变量的path
●打开控制面板,系统,高级设置,环境变量,path
●添加D:\Qt\Qt5.3.1\5.3\mingw482_32\bin,(包含qmake.exe)
●添加D:\Qt\Qt5.3.1\Tools\mingw482_32\bin (包含mingw32-
make.exe)
3.Google搜索qwt,进入官网,下载并解压qwt-6.1.0。

(下载到哪都无所
谓)。

4.修改qwtconfig.pri文件。

修改安装后路径。

(我要把qwt安装到d:\Qwt-
6.1.0中,默认是c盘。


●win32 {QWT_INSTALL_PREFIX = d:/Qwt-$$QWT_VERSION}
5.启动qt命令行程序(类似win dos的那个东东),compile & install qwt文
件。

Qwt下载下来的都是源代码,要做成lib和dll文件,就需要编译和安装(拷贝)两个步骤。

●进入qwt-6.1.0路径,输入命令qmake。

在路径下生成makefile文件。

●输入命令mingw32-make,编译所有cpp文件。

●输入命令mingw32-make install,按照qwtconfig.pri的文件设置,输
出到安装(拷贝)目录d:/Qwt-6.1.0。

6.设置环境变量的系统变量,添加path,D:\Qwt-6.1.0\lib。

很多人把编译好
的文件拷贝到qt库文件夹下。

其实,只要设置系统变量的path,编译程序就会查找这个文件夹了,所以不用拷贝来拷贝去的。

7.在用户变量新建“QMAKEFEATURES”,添加路径D:\Qwt-6.1.0\features。


面包含pri文件,负责当执行QMAKE时能够连接到qwt。

8.拷贝D:\Qwt-6.1.0\plugins\designer里面的qwt_designer_plugin.dll到
D:\Qt\Qt5.3.1\5.3\mingw482_32\plugins\designer中。

这样启动qt designer 的时候,qwt的plugin就可以找到。

9.添加qwt帮助文档:
●将下载的qwt-6.1.0.qch文件拷贝到D:\Qt\Qt5.3.1\Docs\Qt-5.3
●或者,运行qt creator -> tools-> options -> help -> documentation -
>add,添加qwt-6.1.0.qch文件。

10.使用qwt时,要在.pro文件里添加CONFIG += qwt,否则会无法找到qwt
库。

通过以上步骤,可以有以下效果:
1.Qt可以使用qwt库。

2.Qt designer可以直接看到qwt的plugin,直接用鼠标来做GUI。

(注意是
Qt designer程序,不是Form editor。

直接双击目录行上的.ui文件,进入的是Form editor,所以看不到qwt。

右键.ui文件,打开方式选择Qt
design。


3.编码时,使用qwt库类或函数时,按F1会出现帮助资料。

左侧菜单栏的
帮助栏里也出现了qwt库帮助信息。

后记:
我曾经先安装过qt-5.1.0,在这个环境下,安装了qwt-6.1.0,后来卸载了qt-5.1.0,又安装了qt-5.3.1。

也拷贝了qwt的plugin到qt里。

但是qwt的plugin就不能在qt designer里显示了。

后来卸载了qwt,又安装一遍,成功了。

说明qwt安装后所生成的dll文件和qt版本是相关的,不能混用。

---- 2014/8/23。

胡振凯。

相关文档
最新文档