在单片机串口数据调试中,看到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
再次编译就可以了