Visual Studio环境搭建Qgis二次开发环境

server/2025/1/22 21:15:40/
  • QGIS(Quantum GIS)是一款开源的地理信息系统软件,支持二次开发以满足特定的地理信息处理需求。二次开发通常涉及到使用QGIS提供的API和SDK来创建自定义插件或独立应用程序。以下是关于如何搭建QGIS二次开发环境的一些关键步骤和注意事项。

1. 下载必要的软件包

  • OSGeo4W:这是QGIS的主要安装包,包含了QGIS及其依赖项。根据你的操作系统(32位或64位)选择合适的版本进行下载1。
  • Qt:QGIS是基于Qt框架开发的,因此需要安装Qt。推荐使用Qt 5.15版本,因为它与QGIS 3.28兼容3。
  • Visual Studio 或 Qt Creator:这两个IDE都可以用于QGIS的二次开发。Visual Studio适用于Windows平台,而Qt Creator则适用于跨平台开发23。
  • 2. 安装和配置环境

  • Windows平台
    • 使用OSGeo4W安装QGIS开发库。安装过程中选择“Advanced Install”选项,确保安装了所有必要的组件,如Core、GUI和Widgets12。
    • 配置Visual Studio或Qt Creator,创建一个新的Qt GUI Application项目,并引入QGIS库23。
  • 添加包含目录(一共6个)

将VC++目录中,包含目录添加以下地址(我的OSGeo4W默认装在D盘):

D:\OSGeo4W\apps\qgis-dev\include

D:\OSGeo4W\apps\Qt5\include

D:\OSGeo4W\apps\Qt5\include\QtCore

D:\OSGeo4W\apps\Qt5\include\QtWidgets

D:\OSGeo4W\apps\Qt5\include\QtGui

D:\OSGeo4W\apps\Qt5\include\QtXml

  • 添加库目录(一共2个)

D:\OSGeo4W\apps\Qt5\lib

D:\OSGeo4W\apps\qgis-dev\lib

  • 配置链接器(一共6个)

qgis_core.lib

qgis_app.lib

qgis_gui.lib

Qt5Core.lib

Qt5Gui.lib

Qt5Widgets.lib

  • 设置调试环境路径

PATH=D:\OSGeo4W\bin;D:\OSGeo4W\apps\qgis\bin;D:\OSGeo4W\apps\Qt5\bin

  • 设置预处理器

_USE_MATH_DEFINES

  • 设置C++语言标准为ISO C++17标准

配置结束后,测试代码如下:

#include <qapplication.h>

#include <qmainwindow.h>

#include <qgsmapcanvas.h>

#include <qgsrasterlayer.h>

#include <qgsmaptoolpan.h>

int main(int argc,char** argv){

QApplication app(argc, argv);

QMainWindow main_Window;

QgsMapCanvas map_canvas;

QgsRasterLayer layer(R"(E:\360MoveData\Users\DELL\Desktop\XGIS测试数据\abc.tif)");

}


http://www.ppmy.cn/server/160563.html

相关文章

Python 一步一步教你用pyglet制作汉诺塔游戏(续)

目录 汉诺塔游戏 7. 汉诺塔类 8. 移动圆盘 9. 移动演示 10. 递归问题 11. 任意展示 12. 鼠标操作 汉诺塔游戏 汉诺塔(Tower of Hanoi),是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候,他做了三根金刚石柱子,并在其中一根柱子上从下往上按…

基于SpringBoot+Vue旅游管理系统的设计和实现(源码+文档+部署讲解)

个人名片 &#x1f525; 源码获取 | 毕设定制| 商务合作&#xff1a;《个人名片》 ⛺️心若有所向往,何惧道阻且长 文章目录 个人名片环境需要技术栈功能介绍功能说明 环境需要 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&…

Python----Python高级(正则表达式:语法规则,re库)

一、正则表达式 1.1、概念 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、 regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff0…

redis 分布式方案

文章目录 前言一、主从复制1、主从配置2、建立连接3、数据同步3.1、全量同步3.2、全量同步配置3.3、 增量同步3.4、 增量同步配置 二、redis sentinel1、主要功能2、sentinel配置3、高可用3.1、故障发现3.2、故障转移3.2.1、选举sentinel进行故障转移3.2.2、选举从节点升级成主…

navicat无法连接虚拟机的docker中的mysql

我的数据库安装在了虚拟机的docker中&#xff0c;启动MySQL后&#xff0c;在主机上使用navicat一直连接不上。 首先确认密码是否有问题&#xff1a; docker exec -it mysql8 bash #进入mysql容器 mysql -u root -p #登录MySQL&#xff0c;我这边密码是123456 密码没问题的话…

ovs实现lb负载均衡

负载均衡定义 负载均衡器的实现原理是通过硬件或软件设备将客户端访问流量根据转发策略分发到多个服务器或设备上&#xff0c;以确保系统的负载均衡。常见的实现方式包括&#xff1a; 二层负载均衡‌&#xff1a;使用虚拟MAC地址方式&#xff0c;根据OSI模型的二层进行负载均…

备赛蓝桥杯之第十五届职业院校组省赛第一题:智能停车系统

提示&#xff1a;本篇文章仅仅是作者自己目前在备赛蓝桥杯中&#xff0c;自己学习与刷题的学习笔记&#xff0c;写的不好&#xff0c;欢迎大家批评与建议 由于个别题目代码量与题目量偏大&#xff0c;请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…

【C++】模板(进阶)

本篇我们来介绍更多关于C模板的知识。模板初阶移步至&#xff1a;【C】模板&#xff08;初阶&#xff09; 1.非类型模板参数 1.1 非类型模板参数介绍 模板参数可以是类型形参&#xff0c;也可以是非类型形参。类型形参就是我们目前接触到的一些模板参数。 //类型模板参数 …