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

基于QGIS进行二次开发的正确姿势 最近一直在琢磨QGIS的二次开发,也踩过不少坑,好在最后的结果是好的。这里介绍一下我最喜欢的二次开发姿势。 阅读详情
AI摘要

本文围绕QGIS软件展开,介绍了其基于QT5开发,具有开源、易用高效等特点。详细说明了QGIS软件的下载、桌面端操作方法,还阐述了二次开发组件的下载,以及在VS中配置开发组件的步骤,最后针对配置中常见问题给出了解决方案。

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函数中的代码替换为如下所示代码:

#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调整

Qgis二次开发-QgsMapTool地图交互工具详解 QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如,地图平移和缩放功能被实现为地图工具。QgsMapToolEdit:用于编辑矢量几何图形的映射工具的基类QgsMapToolEmitPoint:一个地图工具,当单击地图时,它只是发出一个点。将一个槽连接到它的canvasClicked()信号将允许您为传入点实现自定义行为。QgsMapToolExtent:地图画布上绘制矩形发出一个范围。QgsMapToolIdentify :用于识别图层特征的映射工具。 阅读详情

相关推荐

Qgis二次开发-实现缩略图、标注

因为上述动作是和画布进行交互,所以首先需要自定义一个地图交互工具类,由于做的比较简单,只需要重写实现鼠标点击事件。其次就是在地图画布上画标注图片(svg格式),以及缩略图片(其他格式的),以及经纬度坐标文字。以下是参考如何画svg标注,栅格图片,文字等。Qgis二次开发-QgsAnnotationItem(添加文字、图片标注(支持svg、png、jpg等常用图片格式))_Mr.codeee的博客-优快云博客首先说一下我遇到的问题,

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 3116

VS2019+QT5.15.2+QGIS二次开发环境搭建(非源码方式)

VS2019+QT5.15.2+QGIS二次开发环境搭建(非源码方式)

danshiming的博客 5943

Windows平台从源码编译QGIS 3.10:环境配置与实战避坑指南

在Windows环境下进行C++项目构建时,依赖管理与编译工具链的版本匹配往往是首要难题。以开源GIS软件QGIS为例,其编译过程涉及Visual Studio、Qt、GDAL、PROJ等多个组件的协同,任何版本漂移都可能导致链接错误或运行时崩溃。通过CMake生成工程文件、msbuild并行编译,并利用OSGeo4W统一管理地理空间依赖库,能够有效提升构建效率与可复现性。这一流程不仅适用于QGIS二次开发与插件调试,也为其他复杂C++项目的Windows构建提供了参考。本文聚焦QGIS 3.10 LTR版

weixin_28836989的博客 230

基于QGIS的二次开发(一):准备工作

因此,为了将逻辑与界面分离,我们需要继承这个代码里的对象,在继承对象中奖进行我们的逻辑代码编写,继承窗体类的代码如下所示,在此代码中我们创建了一个Ui_MainWindow 的子类MainWindow,其主体函数是调用构造函数,同时调用ui.py中的setupUi方法来构造整个界面,该文件命名为Ui_frm_main.py。在实验过程中,我们可以选择使用VS Code或者PyCharm作为我们的开发用IDE,此次实验中我选择使用的是较为熟悉且已安装完成的PyCharm。

m0_69187448的博客 6758

VS2019+QGIS开发库二次开发环境搭建

VS2019+QGIS开发库二次开发环境搭建 总共分为以下步骤: 下载qgis和二次开发库 VS2019搭建开发环境 配置VS2019中的Qt插件 配置完Qt版本后对工程属性进行配置 编写测试代码 运行测试代码 拷贝运行程序需要用的动态库文件 1. 开发环境 Win10 ×64 VS2019 OSGeo4W 2. 下载qgis二次开发SDK 打开osgeo4w-setup-x86_64.exe后 1.选择advanced install[外链图片转存失败,源站可能有防盗链机制,建议将图片

matatabimori的博客 8502

VS2019+QT5.15.2+QGIS二次开发环境搭建

VS2019+QT5.15.2+QGIS二次开发环境搭建 1.开发环境 VS2019+QT5.15.2+QGIS 注意,QT 平台的版本与qgis下载的版本有关,以前采用OSGeo4w64来下载qgis时会区分32和64位,但现在官网已经不再区分。 如果下载qgis-ltr(官网的长期支持版,qgis 2.18),那么建议qt采用5.0以下的版本; 如果下载qgis 是3.0版本以上,个人建议qt版本,下载高于qt5.9.2; 另外如果是使用VS2013,那么不能编译qgis3.0版本以上的,c++11个部

qq_44894692的博客 7046

1. qgis二次开发环境搭建(qgis-3.28.6+qt5.15)

本文介绍了QGIS二次开发环境的搭建,完成了Ubuntu QGis3.28 Debug开发环境搭建,Window Release开发环境搭建

雷动专栏 7781

QGIS二次开发入坑指南

日前由于项目需求,学习了QGIS,并在QGIS上进行二次开发。在这里记录一下到目前为止的——入坑过程。 下载QGIS 下载QGIS可以从官网上直接下载。首先,我也是想着编译一下源码,从源码学习。当我开始下载源码之后,并按照网上的一系列教程开始编译时,到目前为止,我还没有成功过。都是在VS中编译时报各种错误。所以,本文不介绍源码编译。当我哪天成功了,我再来补充。 下面介绍一下我所使用的环境...

爱明爱夏的博客 2万+

Windows下QGIS 3.10源码编译全攻略:VS2019+QT5.14环境搭建与避坑指南

在GIS桌面端开发中,源码编译是二次开发和插件定制的基础。QGIS作为开源地理信息系统,其编译依赖GDAL、GEOS、PROJ等空间数据抽象库,并需匹配QT和Visual Studio工具链。通过CMake配置和Ninja构建,可生成可调试的QGIS开发环境,支持自定义插件和底层渲染修改。本文详细讲解在Windows平台使用VS2019和QT5.14编译QGIS 3.10的完整流程,涵盖依赖管理、CMake参数调优、运行时DLL修复及常见错误排查,帮助开发者高效搭建QGIS二次开发环境。

weixin_31321361的博客 260

QGIS3.18.3(自带QT5)+VS2019二次开发环境搭建及测试

QGIS3.18.3(自带QT5)+VS2019二次开发环境搭建及测试前言一、环境搭建前的准备二、开始搭建项目,设置环境1.打开VS,下载QT VS Tools插件2.QT VS Tools插件中设置QT版本3.用户环境变量配置(设置完后重启电脑)4.打开VS,新建Qt Widgets Application项目,命名为gisTest2--next--next--finish5.gisTest2项目右键属性,C/C++ 点击常规,附加包含目录设置,如下图:6.gisTest2项目右键属性,链接器中,点击常规

君子之学必日新,日新者日进也。不日新者必日退,未有不进而不退者 3947

QGIS二次开发环境配置(Visual Studio 2015 + Qt 3.12 + QGIS 3.16)

在WIndows 10 上配置QGIS二次开发环境

qq_42244020的博客 6041

Windows平台从源码编译QGIS 3.10全流程与避坑指南

在Windows上从源码编译C++项目,核心挑战在于依赖管理与工具链版本匹配。由于缺乏系统级包管理器,GDAL、GEOS、PROJ、Qt等第三方库的版本冲突常导致CMake配置失败或链接错误。通过锁定QGIS 3.10、VS2019与Qt 5.14的兼容组合,并利用OSGeo4W统一获取依赖,可显著降低环境搭建复杂度。该流程适用于QGIS插件开发、二次开发及定制化构建场景,帮助开发者获得可调试的库文件与可执行程序,进而嵌入业务系统或调试底层算法。

weixin_30096975的博客 245

QT5.12.6+QGIS3.10二次开发(Qtcreater)(一)环境搭建

QT5.12.6+QGIS3.10二次开发(Qtcreater)环境搭建 一、前言 QtCreater的编译模式有msvc和mingw两种,msvc调用的第三方库是.lib结尾的,而mingw调用的库是.a结尾的。在windows下下载的QGIS开发包中的库文件是.lib库,所以,在QtCreater中直接使用下载的QGIS库只能采用msvc编译模式(至于mingw下调用.lib库比较麻烦,而且容易出各种问题,在此不做深入讨论),本文主要说明使用msvc编译模式下的环境搭建方法。 准备工作: 下载vs_C

qfl_sdu的博客 7259

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)

利用VS搭建QGIS二次开发环境(保姆式教学!!)

m0_53522458的博客 9695

QGIS编译--QGIS3.03+VS2017(64)+QT5.92源码编译过程及二次开发准备经验

    已经3年没有接触编码了,因项目需要,开始接触QGIS。经过大半个十一长假,终于在各种文章及QGIS提供的帮助文档的支持下,实现了两个目标:(1)将QGIS在QT+VS的开发环境下,调用运行起来,初步具备二次开发能力;(2)编译QGIS源码,生成qgis.exe,从而能够支持在二次开发的过程中,学习QGIS的代码。从学习过程来看,这是两个相对独立的过程,在实现这两个目标的过程中,得到了QGI...

litterpotatoes的专栏 3584

QGIS 示例程序,实现QGIS二次开发

本人编写的QGIS示例程序,环境vc9,qgis1.6 sdk,qt4.7,实现了基本的gis功能。

QGIS3.10+VS2019+QT5.14编译(附视频教程)

QGIS3.10+VS2019+QT5.14编译(附视频教程)视频教程编译环境安装bison和flex安装qgis-dev-deps配置环境变量安装QT附加依赖项配置cmake编译 最近公司的项目要用到QGIS,所以花了几天时间研究了一下,编译了两个版本(另一个是QGIS2.18+VS2013+QT5.7.1),使用vs2013编译QGIS比较麻烦,我试了好多QGIS版本都不行,而且不能使用官方提供的依赖库(需要支持c++11),所以个人推荐使用vs2015以上的编译器。 视频教程 https://www.

u014444411的博客 3013

【全网最新】使用 1panel面板 部署若依系统( springboot 和 vue)项目

打开前端项目的vue.config.js文件,检查devServer下的proxy代理部分,然后将下面这个端口修改为你要在打包后访问的端口,即使用nginx代理前的接口。这个端口默认是80端口,这里把其修改为不会冲突的8010端口,后台接口的地址配置为9080,不过感觉这里设置的8010和9080可能没有用,因为部署前端静态页面是,也配置了一次网页的外部接口和api的接口,后期有空了再验证。打开右侧的Maven,点击:生存期->package,然后点击运行,等待打包成功,包在如图所示的文件夹中。

老薛的专栏 1755

QGIS+QT5+VS2015(2017)的编译

QGIS+QT5+VS2015(2017)的编译 因学业的需要,接触到QGIS的有关知识,需要将其在VS环境下再开发。 这是我第一次学习开源的代码,很多地方磕磕绊绊,好几天才将代码编译完成。 以防日后遗忘,便于回顾。 特整理如下。 准备工作 在整个工作开始之前,建议先做一些准备工作。 要求配置资源 操作系统:Win10 ×64 (要注意自己的系统是64位还是32位,以下软件安装的位数版本均与系统...

qq_39506222的博客 7336

PCL Fast Global Registration 快速全局配准(源码版)

Fast Global Registration(FGR)是一种经典的点云粗配准算法,已集成到Open3D和CloudCompare等软件中。本文介绍了该算法的源码实现及优化方法,包括如何通过修改源码直接读取点云进行配准,而不依赖文件中读取特征描述子。文章还提供了关键参数设置(如最大迭代次数、匹配距离等)。算法实现简单高效,未来计划发布基于纯PCL的版本。源码和论文链接已附上,供开发者参考。

点云侠的博客 383

LPDDR6 tdbR2dbR_L cross row技术探讨

LPDDR6 tdbR2dbR_L cross row技术探讨

zilan23的博客 47
上一篇: 动态规划问题(POJ1579/1458/1088)(C++)
下一篇: GIS中的投影坐标系
CUGLin
博客等级 码龄4年 585粉丝 35原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值