浅入深出QWT.doc_第1页
浅入深出QWT.doc_第2页
浅入深出QWT.doc_第3页
浅入深出QWT.doc_第4页
浅入深出QWT.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浅入深出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可以帮助简化步骤。打开Qt Creator,打开qwt源码目录下的.pro工程文件,然后点击左下的run按钮,qwt就开始了自动编译的的过程:编译过程需要5到10分种时间,可以坐下别的事,或者喝杯咖啡什么的_,并且Qt Creator帮助我们做好一切工作,我们只要等待编译完成就可以了。当 编译完成后,只要完成最后一步就可以在winXP上使用QtCreator来编写qwt相关程序,并且在Qt设计师里使用qwt的部件。在编译完成qwt 目录下,有lib目录和designer目录,将lib目录里的qwt5.dll文件拷贝至qtsdk的目录下的qt目录的bin目录中(比如本菜菜为F:Qt2009.03qtbin),将libqwt5.a文件拷贝至对应的lib目录 (如F:Qt2009.03qtlib),最后将designer目录下的plugins目录的designer目录(真绕口啊囧)下的 libqwt_designer_plugin5.a文件和qwt_designer_plugin5.dll拷贝到跟上面一样对应的plugins目录 下的designer目录(如F:Qt2009.03qtpluginsdesigner),看起来十分繁琐,其实是非常简单的过程。好吧,如果真是这样用真的就太美好了,真的是傻瓜式的安装,只要编译好将库文件复制过去,这真是容易极了。但是事与愿违,这一切只是浅入的开头,真正的深出还在后面,以上这样步骤可以视为是准备qwt库的过程,而真正要写qwt还有很重要的步骤,本菜菜将放在下一篇详细解说,如果你想在winXP上使用qwt,就请先按这些步骤完成吧。在上篇中,介绍了如何使用QtCreator编译安装qwt,现在介绍怎么使用QtCreator来编写使用了qwt库的qt程序。为 了简化流程,本菜菜直接复制了qwt中example的代码,并且使用QtCreator新建一个工程并将代码粘贴进去。这时如果误以为只要点击run就 可以运行程序,那就是大错特错了。本菜菜开始时就犯了如下的错误,不幸的是,是直接使用了qwt目录里的example,而里面的pro工程文件可是设置 完毕的,只要生成了库文件dll和libxx.a的文件情况下,自然是可以运行的。本菜菜就是这样被蒙蔽了,才造成qwt库设置完毕的假象。这时如果点击run,多半会出现以下错误:简 单地来说,就是QtCreator找不到qwt库中各个类型的声明。解决的办法也很简单,将qwt的头文件包含进去即可。去qwt的解压目录,在下面有个 src目录,里面就有所有qwt的源码文件,将其中的.h头文件复制出来,然后去Qt SDK的安装目录,在下面的qt子目录的include目录里(比如F:Qt2009.03qtinclude)新建一个Qwt文件,将复制出来 的.h文件粘贴进去。Qwt毕竟是第三方库,指望QtCreator能自动认出来,还需要在.pro里文件设置LIBS和INCLUDEPATH ,这些属于qmake的知识范畴内,有兴趣的朋友可以去看看文档qmake手册部分:/doc/4.5/qmake-manual.html.本菜菜的设置如下:LIBS += -L”f:/Qt/2009.03/qt/lib” -lqwt5INCLUDEPATH += f:/Qt/2009.03/qt/include/qwt各人设置爱好都不一样,大家可以根据自己的需求来设置。上面这些步骤浓缩起来时很简单,但在一无所知地情况下,本菜菜花费了大量的时间来尝试,可谓步步都留下辛勤的汗水。恐怕很多在想了,现在总可以正常使用qwt了吧,好吧,我也是这样想的,结果却是:真 是很郁闷的错误啊,然后又花费了大量的时间进行研究,原因其实也很简单,在winXP下面,Qt是不能混用库的。在QtCreator下面,默认编译运行 的是debug模式,而本菜菜编译出来的是release库,自然就不行了。这时设置QtCreator为release模式,就能运行程序,但这样,调 试怎么办了?当然,只要编译qwt生成debug库文件,自然就可以在QtCreator下使用debug模式编译使用。这是,去qwt的源码目录,打开qwtconfig.pri文件,可以使用记事本,也可以使用类似UltraEdit的软件工具,在里面找到这段:win32 # On Windows you cant 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 += debug # release/debug/debug_and_release #CONFIG += debug_and_release #CONFIG += build_all 修改成为 win32 # On Windows you cant 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 += debug # release/debug/debug_and_release #CONFIG += debug_and_release CONFIG += build_all else CONFIG += release # release/debug 然后按照上篇中的编译流程,最后把生成的dll和.a文件拷贝过去即可,其中,如果是debug的文件,文件名会多个d,比如qwtd5.dll,而在QtCreator里运行debug模式,也需要在.pro文件里稍作修改:LIBS += -L”f:/Qt/2009.03/qt/lib” -lqwtd5INCLUDEPATH += f:/Qt/2009.03/qt/include/qwt最后,程序总算能成功运行了,整合到设计器的部分就请等下篇吧在上和中篇中,通过一些列简单的配置,我们可以方便在WinXP上编译安装Qwt库,并且对pro文件作少需修改,就可以顺利的使用Qwt库开发程序。对 于习惯敲代码的人来说,到这步已经足以满足开发的需求,但对于要求快速应用开发或者是习惯于Qt设计器的开发人员来说,这还远远不够。细心的人可能会觉 得,前面把库文件复制过去了,不是应该已经集成到了Qt设计器里么。这样想的人可以说,对于Qt SDK是不甚了解,Qt SDK是由两部分组成,Qt Creator 和Qt 库,没有Qt Creator,照样能使用Qt库写程序,没有了Qt库,Qt Creator可干不了什么。在上中,我做的紧紧是把Qwt库集成到了Qt库中,如果启动Qt的库的设计器,自然就能看到旁边可选择得Qwt部件,而在QtCreator的设计器中,是不会出现Qwt的部件。以 此类推,解决的办法就是讲Qwt插件文件复制到QtCreator的bin目录下去,如我就是F:Qt2009.03bindesigner。假 如这能一次性成功,那该是多么好的事情,现实是残酷的,QtCreator中的设计器显示该插件无法加载,而错误信息显示:“The plugin uses incompatible Qt library. Expected build key “Windows msvc relase full-config”, to “Windowsmingwrelease full-config”.明明Qt库是用mingw编译,为什么会出现msvc编译器呢?于是仔细查找了有关资料,发现以下这段话:The version of QT Creator shipped with the QT SDK Open Source version for windows is build using Visual Studio, whereas the SDK is build with and supports g+ (MinGW). This doesnt cause too many problems, but it totally defeats building and installing QT Designer plugins into QT Creator. The error message is:Expected build key “Windows msvc release full-config” got “Windows mingw release full-config”结果非常清晰了,Qt SDK for Windows的两部分是由不同编译环境编译而成,QtCreator是由msvc编译,Qt库是由mingw编译,我们编译出来的Qwt库是基于mingw的Qt库,自然就不能被QtCreator识别。那解决的办法也自然出来了:It can be solved three different ways:1) Build QT Creator from source wi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论