linux下为qt5安装qwt数据坐标图显示控件

在单片机串口数据调试中,看到window下有人做了串口示波器,于是也想在linux写一个串口显示器,图形库当然是用qt5.在qt中开源的qwt数据图形显示库为做示波器的显示面板绘制提供便捷.这里介绍在ubuntu下qwt的安装.

个人原创,转载请注明原文出处:

http://www.embbnux.com/2014/02/07/linux_install_qwt_for_qt5/

参考:

http://qwt.sourceforge.net/qwtinstall.html
http://blog.csdn.net/tangtao_xp/article/details/8875327

http://blog.csdn.net/czyt1988/article/details/11999985

一  首先是下载qwt

linux下qt环境的建立,请看我前面的文章.这里只介绍qwt的安装.官网下载:

http://sourceforge.net/projects/qwt/files/qwt/6.1.0/

linux下下载qwt-6.1.0.tar.bz2,解压到适当的目录.

修改该目录下的qwtconfig.pri,主要是修改该目录下的安装目录,为你自己的目录:

unix { QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION }

二  开始编译安装

终端进入该目录,用之前的配置的qt5环境的qmake来编译:

 cd qwt-6.1.0/your_qt_install_dir/5.1.1/gcc_64/bin/qmake qwt.pro
      make
      make install

会提示错误:不可识别的文件格式,不用管,这样在你刚才编辑的目录下就有qwt-6.1.0目录,里面有需要的库和插件

三  配置qt环境变量

编辑~.bashrc添加:

export QTDIR=/your_dir/QT/5.2.1/gcc_64
     export LD_LIBRARY=$LD_LIBRARY:$QTDIR/lib
     export PATH=$PATH:$QTDIR/bin
     export QT_PLUGIN_PATH=$QTDIR/plugins
     export QT_PLUGIN_PATH=$QT_PLUGIN_PATH:/home/dongyu/work/QT/Tools/QtCreator/bin/plugins
     export QWT_ROOT=/your_dir/QT/qwt-6.1.0
     export QT_PLUGIN_PATH=$QWT_ROOT/plugins:$QT_PLUGIN_PATH

如果之前有用源安装QT4,就卸载掉.

四  在qt creator中使用qwt控件

为了把qwt插件安装到qtcreator中,需要把第二步编译生成的qwt-6.1.0目录下的qt_designer插件复制到你的qt creator插件目录下.还要把qwt-6.1.0目录下的lib文件夹下的库文件复制到qt的库文件夹下:

cp $QWT_ROOT/plugins/designer/libqwt_designer_plugin.so  $QTDIR/../../Tools/QtCreator/bin/plugins/designer/
cp  $QWT_ROOT/lib/* $QTDIR/lib/

这样打开qt creator就能在 设计里面看到qwt控件:

 

试着添加个控件看看

 

编译,显示缺少qwt_plot.h文件.看来是头文件没有找到.

编辑该项目的pro文件,添加下面语句:

#qwt set #CONFIG   += qwt
QWT_ROOT = $${QTDIR}/qwt-6.1.0
include( $${QWT_ROOT}/features/qwtfunctions.pri )
INCLUDEPATH += $${QWT_ROOT}/include
DEPENDPATH  += $${QWT_ROOT}/include
QMAKE_RPATHDIR *= $${QWT_ROOT}/lib
contains(QWT_CONFIG, QwtFramework) {
     LIBS      += -F$${QWT_ROOT}/lib
}
else {
    LIBS      += -L$${QWT_ROOT}/lib
}
qwtAddLibrary(qwt)
greaterThan(QT_MAJOR_VERSION, 4) {
    QT += printsupport
    QT += concurrent
    contains(QWT_CONFIG, QwtOpenGL )
     {
       QT += opengl}
     else {
        DEFINES += QWT_NO_OPENGL
      }
contains(QWT_CONFIG, QwtSvg) {
    QT += svg }else {  DEFINES += QWT_NO_SVG
    }
#end qwt set

再次编译就可以了

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload the CAPTCHA.

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据