QWT库包含GUI组件以及为具有技术背景的程序中很有用的工具类。旁边的二维框架绘制它提供了尺度,滑块,刻度盘,指南针,温度计,车轮和旋钮来控制或显示值,数组或double类型的范围。
为了论坛的健康发展,请大家回复后查看,后续所发移植过程全部需要5个金币才能查看,希望大家多多回复坛友的问题从而挣取金币,否则你可能会因为金币不够而无法查看一些重要的帖子!
开发板环境:TQ210 Linux+qt系统 交叉编译器 :arm-linux-gcc 4.4.6
PC端环境:ubuntu12.04 64位
- 让PC 上的qtcreator有qwt的控件,所以需要编译一个x86版本的qwt。
进入qwt源码目录,使用x86版本的qt来编译qwt,注意用qmake -v命令来查看qt的版本,确保是x86的qt。 qmake make make install 默认生成的库的路径为/usr/local/qwt-6.1.1-svn/ 将编译生成的/usr/local/qwt-6.1.1-svn/plugins/designer/libqwt_designer_plugin.so库文件拷贝到qt-x86的安装路径下的plugins/designer目录下。 另外,将qwt生成的/usr/local/qwt-6.1.1-svn/lib/下的库文件,拷贝到qt-x86的安装目录下的lib目录中。 重新打开qtcreator的ui设置界面designer,可以看到控件新添加了Qwt Widgets这一栏。
编译带qwt的程序时,需要在工程文件中添加qwt的头文件目录及相关的库,具体实现为在*.pro文件中添加类似如下代码(其中路径按读者实际情况而定):
INCLUDEPATH += /usr/local/qwt-6.1.1-svn/include LIBS += -L"/usr/local/qwt-6.1.1-svn/lib" -lqwt
2. 编译arm版本的qwt。 进入源码目录,编辑qwtconfig.pri文件,找到如下语句,将其屏蔽(加#号):QWT_CONFIG += QwtDesigner 出现如下错误:qwt_symbol.cpp:20:26: fatal error: qsvgrenderer.h: No such file or directory compilation terminated. 则是arm-qt编译的时候没有添加svg的支持,这时要在qwtconfig.pri文件中屏蔽掉如下两句:#QWT_CONFIG += QwtSvg和#QWT_CONFIG += QwtPlayground 出现如下错误:qwt_plot_glcanvas.h:15:17: fatal error: qgl.h: No such file or directory compilation terminated.则是arm-qt没有opengl的支持,需屏蔽qwtconfig.pri中的#QWT_CONFIG += QwtOpenGL这句话。 make编译完成 make install 注意install的路径,默认为/usr/local/qwt-6.1.1-svn/,可在qwtconfig.pri中的 QWT_INSTALL_PREFIX修改。 编译测试程序,编译方法与x86编译方法类似,不同的是qmake的选择,包含的头文件路径及库路径的不同。 编译qwt源码中examples文件夹中的例程(注意,如遇到找不到qgl.h的错误,则是arm-qt没编译opengl的支持,需在示例代码中将opengl部分去除)。
3. 编译qwt源码中的实例程序barchart(路径:源码目录中的examples/barchart) 进入barchart,用qtcreator打开该工程,编辑barchart.pro如下
#include( $${PWD}/../examples.pri ) (ps:这里屏蔽了第一句)
TARGET = barchart INCLUDEPATH += /opt/qwt-6.1_arm/__install/include (ps:添加头文件途径) SOURCES = \ barchart.cpp \ main.cpp
HEADERS = \ barchart.h LIBS += -L"/opt/qwt-6.1_arm/__install/lib" -lqwt (ps:添加库)
完成后,保存,使用arm-qt中的qmake执行qmake命令,生成Makefile文件,然后再make生成可执行程序,将生成的可执行程序拷贝到开发板的linux文件系统,并将qwt的arm版本的库拷贝到文件系统上的/opt/PDA/lib目录下,然后执行./barchart -qws。执行效果如下:
|