VS配置QGIS二次开发(VS2019+QT5+QGIS3.14)

1.1 QGIS软件下载

QGIS软件是基于QT5开发的GIS系统,其易用性及其高效性使其已经成为当下极具竞争力的GIS系统,其占有率足以与Esri的ArcGIS等主流GIS软件分庭抗礼。QGIS软件因其开源特性也使得其广受广大GIS开发者的青睐。

在本次《地理信息系统设计与开发》的第一次课程作业中,笔者将就如何下载使用QGIS软件进行详细的介绍说明。

Step1:首先,我们需要使用搜索引擎进入QGIS的官网,这里笔者测试过,可以在bing搜索或者百度直接输入"QGIS"即可找到相应的网页。其官网界面(2024年9月4日)如图1.1.1所示。

Tips:网址:Spatial without Compromise · QGIS Web Site

图1.1.1 QGIS官网界面

Step2:接下来,可以直接点击"Download"按键,进行下载,点击后会进入到QGIS的捐赠界面(爱心人士可以选择捐赠支持开源传作者),继续点击"Skit it and go to download"即可进入到软件版本下载的选择界面,如图1.1.2所示。

图1.1.2 QGIS软件下载版本选择界面

Step3:这里的选择依据自身电脑的操作系统而定,这里笔者使用的是Windows系统,因此直接点击"Long Term Version for Windows(3.34 LTR)"下载QGIS目前最新的长期支持版本3.34.10即可。

Tips:由于QGIS官网部署在境外的org主机,因此下载速度会较慢。

Step4:下载完成后,会得到一个msi格式的光盘文件,如图1.1.3所示。

图1.1.3 QGIS下载所得光盘格式文件

Step5:接下来,双击安装包进行安装指引操作即可进行相应的软件安装操作。安装完成后会将快捷方式文件夹添加到桌面。如图1.1.4所示。

Tips:这里的操作就是无脑点击下一步即可,即一直点击"next",当然,安装位置需要根据用户的实际情况来进行相应的调整。

图1.1.4 软件安装位置

进行到这一步,软件的安装操作便已经完成,下一节就QGIS桌面端的操作给出简易的介绍。

1.2 QGIS桌面端软件操作

在上一节中,笔者已就如何下载QGIS给出详细的介绍,本节将就如何使用QGIS给出简易的介绍。

Step1:首先,找到QGIS快捷方式文件夹,打开其中的"QGIS Desktop 3.34.10"即桌面端QGIS,如图1.2.1所示。

图1.2.1 桌面端QGIS

Step2:双击打开对应的桌面端QGIS软件,由于QGIS开发的特性,所以这里首次打开时的界面是英文版本的。这里可以因此点击"Settings",选择"Options"进入设置。如图1.2.2所示。

图1.2.2 QGIS界面操作

Step3:接下来,需要勾选"Override System Locale"启用语言配置操作,在选择语言为简体中文即可。如图1.2.3所示

图1.2.3 QGIS语言配置操作

Step3:点击确定后,需要重启软件,进行插件的适配操作。再次打开时,即会显示为中文界面,如图1.2.4所示。

图1.2.4 QGIS中文桌面端界面

Step4:这里,可以选择新建一个新工程,接下来便可以进行GIS软件的操作,这里笔者导入了一个武汉市的矢量数据进行测试演示。如图1.2.5所示。

图1.2.5 QGIS打开矢量数据测试

QGIS作为一款成熟的GIS软件,当然还具备其他的功能操作,限于篇幅这里就不一一演示了。在后续的操作中,笔者将介绍的是关于QGIS二次开发的配置操作。

1.3 QGIS二次开发组件下载

Step1:首先需要进行OSGeo4W 安装程序下载,下载地址为:Installation Guide · QGIS Web Site。当然,由于这里下载过程较慢且较为复杂,这里选择使用课程群里已经提供的预先下载安装包,解压缩可以得到对应的配置数据,如图1.3.1所示:

图1.3.1 对应环境

Tips:当然,这里也可以选择通过网络进行安装,这里主要需要安装的是对应的QGIS二次开发环境组件和支持QT5环境。

一直点下一步即可,下图界面需要耗费一些时间。

1.4 在VS中配置QGIS二次开发组件

完成了所需开发环境的下载后,便可以通过VS进行对应的环境的配置了。

Step1:首先,打开vs(笔者这里使用的是VS2019版),接下来进行QT插件的安装。这里首先要安装QT Visual Studio Tools以扩展VS的QT功能开发,即在扩展中搜索QT进行下载,如图1.4.1所示。

图1.4.1 QT扩展安装

Tips:由于VS上的插件提供多来自Github上,因此下载较慢,这里推荐使用清华镜像:

https://mirrors.tuna.tsinghua.edu.cn/qt/archive/vsaddin/3.2.0/?C=M\&O=D

Step2:点击下载后,需要关闭VS,此时即会弹出对应的下载提示,进行下载即可,下载完成会进行弹窗提示,如图1.4.2所示。

图1.4.2 QT Visual Studio Tool安装成功提示

Step3:接下来,打开VS新建一个QT Widget Application项目,在对应的QT的选择时,这里选择到此前下载的配置环境中的QT5目录下的bin目录中的qmake,,同时选择为对应的Release版本,如图1.4.3所示。

图1.4.3 配置下载好的QT环境

Tips:这里我们打开对应的QT会发现已经适配好对应的QT版本,如图1.4.4所示。

图1.4.4 对应配置的QT版本显示

Step4:接下来,进行项目的属性配置,这里右键项目"属性"进行项目属性设置。

(1 )设置附加包含目录

在项目->属性-> c/c++->常规中,添加"附加包含目录" ,目录为下载的osgeo-4w-qgis-dev的相关库存储路径,需要根据自己存储路径个性化设置。如图1.4.5所示。

图1.4.5 对应附件包含目录配置

  1. D:\QGIS\osgeo4w-qgis-dev\QGIS-ltr\include
  2. D:\ QGIS\osgeo4w-qgis-dev\3rdParty\include
  3. D:\ QGIS\osgeo4w-qgis-dev\Qt5\include
  4. D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtCore
  5. D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtWidgets
  6. D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtXml
  7. D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtGui

(2 )设置附加库目录

在项目->链接器->常规中,添加"附加库目录"。如图1.4.6所示。

图1.4.6 附件库目录配置

  1. D:\QGIS\osgeo4w-qgis-dev\3rdParty\lib
  2. D:\QGIS\osgeo4w-qgis-dev\QT5\lib
  3. D:\QGIS\osgeo4w-qgis-dev\QGIS-ltr\lib

(3) 设置附加依赖项

最后还需要进行附加依赖项的配置,依次在项目->链接器->输入中,添加"附加依赖性"。如图1.4.7所示。

图1.4.7 附加依赖项设置

  1. qgis_core.lib
  2. qgis_app.lib
  3. qgis_gui.lib
  4. Qt5Core.lib
  5. Qt5Gui.lib
  6. Qt5Widgets.lib

(4)其他相关设置

1.设置预处理器定义

在c/c++->预处理器->预处理器定义:"_USE_MATH_DEFINES"。如图1.4.8所示。

图1.4.8 预处理定义配置

2.设置C++语言标准

将C++语言标准设置为ISO C++17标准(/std:c++17)。如图1.4.9所示。

图1.4.9 语言配置

完成上述操作后,VS中的相关配置便已完成,这里给出一个简单应用QGIS二次开发组件打开栅格数据的方法进行测试。即将main函数中的代码替换为如下所示代码:

cpp 复制代码
#include <QApplication>

#include <QmainWindow>

#include <qgsmapcanvas.h>

#include <qgsrasterlayer.h>

#include <qgsmaptoolpan.h>

//整数类型主函数(整数类型统计参数个数,字符类型指针数组指向字符串参数)

int main(int argc, char** argv)

{

        //QApplication有且仅有一个应用程序类的对象 

        QApplication app(argc, argv);

        //继承于QWidget,QWidget是一个窗口基类,main_window是一个窗口类 

        QMainWindow main_window;



        //创建画布 

        QgsMapCanvas map_canvas;



        //添加本地影像路径

        QgsRasterLayer layer(R"(C:\Users\33439\Desktop\1\1.tif)");//这里需要应用自己的栅格文件路径

        //设置图层集合

        map_canvas.setLayers({ &layer });

        //设置图层范围

        map_canvas.setExtent(layer.extent());

        //刷新画布 

        map_canvas.refresh();





        QgsMapToolPan map_tool_pan(&map_canvas);

        map_canvas.setMapTool(&map_tool_pan);



        //设置画布居中显示

        main_window.setCentralWidget(&map_canvas);

        //显示窗口(默认是隐藏模式)

        main_window.show();

        //等待用户操作

        return app.exec();

}

当配置成功时,会正确打开对应栅格图像,笔者这里打开的时武汉地区的栅格图像,成功打开时如图1.4.10所示。

图1.4.10 成功打开视图

1.5配置中常见的问题

1.可能存在的无法打开源文件"QDomDocument",如图1.5.1所示。

图1.5.1 无法打开源文件"QDomDocument"

解决方法:这是由于Qt Modules未包含相应的QXML扩展。右击工程,选择【QT】,然后接着点击【Qt Project Settings】,在对应的【Qt Modules】中勾选上【QXML】并选择应用即可,如图1.5.2所示。

图1.5.2 添加QXML扩展

2.由于找不到对应的dll而出现错误,如图1.5.3所示。

图1.5.3找不到对应的dll

解决方法:将相关dll文件放在项目.exe目录下

将图1.5.4对应的下列bin中所有的文件全部复制到此目录下:

图1.5.4 对应文件夹

  1. D:\QGIS\osgeo4w-qgis-dev\Qt5\bin
  2. D:\ QGIS\osgeo4w-qgis-dev\3rdParty\bin
  3. D:\ QGIS\osgeo4w-qgis-dev\qgis-ltr\bin

3.若出现如图1.5.5所示错误

图1.5.5 对应QT错误

解决方法:则将下列文件夹复制到.exe目录下(一定要复制到含有工程的exe目录下)。

D:\osgeo4w-qgis-dev\QT5\plugins\platforms。如图1.5.6所示。

图1.5.6 拖到对应框栏

4.若出现如图1.5.7所示错误。

图1.5.7 对应打开错误

解决方法:在项目->属性->配置属性->VC++目录->库目录里进行添加lib文件目录。如图1.5.8所示。

图1.5.8 对应lib调整

相关推荐
王俊山IT10 分钟前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
为将者,自当识天晓地。12 分钟前
c++多线程
java·开发语言
小政爱学习!14 分钟前
封装axios、环境变量、api解耦、解决跨域、全局组件注入
开发语言·前端·javascript
k093329 分钟前
sourceTree回滚版本到某次提交
开发语言·前端·javascript
神奇夜光杯37 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
Themberfue39 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
plmm烟酒僧41 分钟前
Windows下QT调用MinGW编译的OpenCV
开发语言·windows·qt·opencv
测试界的酸菜鱼1 小时前
Python 大数据展示屏实例
大数据·开发语言·python
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
Black_Friend1 小时前
关于在VS中使用Qt不同版本报错的问题
开发语言·qt