这两天进度比较慢。
之前是计划在VS2015中开发的,今天尝试在Qt Creator中配置环境,遇到几个问题,先简单记录一下。
起因
本来是打算在VS2015中学习的,但发现VS2015运行时qt界面和Qt Creator中不一样,比较丑,更像是Win2000的界面风格。
VS2015运行界面
Qt Creator运行界面
从上面两张图可以看出区别,但简单研究了一下,没找到原因,百度也没有相关的内容。
记得在VS中MFC默认使用多字节模式式,界面也是这样,但改成UTF就可以了,或者在stdafx.h中把关于UTF的宏注释掉就可以了,如下:
//#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
//#endif
但在Qt项目里面改成UTF也不行,所以考虑尝试用Qt Creator试试。
但网上普遍说在Windows下VS的调试功能更强大,Qt Creator更注重跨平台开发。
问题汇总
以前基本没有用过Qt Creator,对于配置也不太熟悉。
先正常创建了一个Qt项目,可以正常运行后,尝试加入QGIS库。
1. 添加库(lib)和引用文件(include)
使用图形界面GUI添加库时(右击项目,添加库),同时可以指定对应的include文件,但没有找到单独添加include文件的GUI界面,搜索结果只有手动修改工程文件pro,添加如下内容:
INCLUDEPATH += $$PWD/../../../OSGeo4W/include
注意到使用的是相对路径。
另一点,我使用的lib文件,DEBUG版本文件名后没有字母d,所以在添加库的时候不要勾选对应选项,如下图。我在第一次添加时没有注意,后来又一个一个搜索删掉d。
2. 添加XML模块
在添加完库和引用文件后,再次尝试编译,结果提示找不到<QDomDocument>
文件,我滴个乖乖,Qt好奇怪,需要include路径就让我添加呗,结果不,要添加模块,虽然可能底层原理一样,但操作不一样,搜索了一下,说要添加模块,只找到一个人给了张图片,是在VS里,有个GUI界面,复选框选中XML,而在Qt Creator中就得在工程文件pro文件中修改,如下代码,xml是我添加的,前两个是默认的。
QT += core gui xml
需要注意的是,这里是区分大小写的,我看网友图片是大写XML,于是写了大写的XML,但是还是错误,改成小写就好了。
3. 预定义宏
在我信心满满觉得要编译成功时,现实又狠狠地教育了我一遍,居然提示不认识M_PI
,不是专业码农果然缺少很多经验,又是搜索,结果需要预定义一个宏,这在VS中也可以在项目设置里面,设置预处理器定义,
但在Qt Creator中又没找到GUI设置功能,又是在工程文件pro中手动修改,添加如下代码:
DEFINES += _USE_MATH_DEFINES
总结
经过不懈地尝试和搜索后,终于可以在Qt Creator中Code了,虽然并不愿意。
由于经验不足,遇到一些问题,记录下来。
上面的设置,很多都是在工程文件pro中直接修改的,虽然这种方法非常自由,但对于新手真的不是很友好。
可能他们提供了相应的编辑GUI,只是我没找到,希望有知道的朋友知会一下,谢谢。
还有在VS中Qt界面为什么会显示不正常,非常难受,还是希望能够用VS来开发的,万能的网友,帮忙解决一下吧。