QGIS二次开发环境搭建

Windows开发环境搭建

Visual Studio Community 2022

QGIS 官网下载OSGeo4W

https://www.qgis.org/en/site/forusers/download.html

安装OSGeo4W:

配置国内源,可加速下载过程:

http://gwmodel.whu.edu.cn

安装选项,过滤qgis,最新的qgis-ltr可选的只有3.16,没有3.22,可能还没出。

过滤qt

本机设置安装路径为C:\OSGeo4W

新建Qt Widgets工程,只能选Release版本,不支持Debug,勾选以下模块

IDE QT环境配置,使用OSGeo4W自带的Qt5,不支持Qt6:

C++语言标准选择C++17

C++附加包含目录配置,新增

C:\OSGeo4W\apps\qgis-ltr\include

C:\OSGeo4W\apps\Qt5\include

C++预处理器,新增

_USE_MATH_DEFINES

链接器,附加库目录新增:

C:\OSGeo4W\apps\Qt5\lib

C:\OSGeo4W\apps\qgis-ltr\lib

链接器输入,附加依赖项,新增:

qgis_core.lib

qgis_app.lib

qgis_gui.lib

Qt5Core.lib

Qt5Gui.lib

Qt5Widgets.lib

main.cpp代码:

#include "QtMeteor.h"

#include <QtWidgets/QApplication>

#include <QtWidgets/QApplication>

#include <qgsapplication.h>

#include <qgsmapcanvas.h>

#include <qgsrasterlayer.h>

#include <qgsmaptoolpan.h>

#include <QDebug>

int main(int argc, char* argv[])

{

QApplication a(argc, argv);

QMainWindow main_window;

QgsMapCanvas map_canvas;

qDebug() << QApplication::applicationDirPath() + "/" + R"(China.tif)";

QgsRasterLayer layer(QApplication::applicationDirPath() + "/" + R"(China.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 a.exec();

}

本机代码生成目录为:C:\Users\xuduo\source\repos\QtMeteor\x64\Release

运行上面代码,还需要把依赖的dll拷贝到exe程序所在的目录,所需dll从C:\OSGeo4W\apps\Qt5\bin和C:\OSGeo4W\apps\qgis-ltr\bin以及C:\OSGeo4W\bin,这三个目录中获取,支持用windeployqt部署打包。

依赖清单如下,platforms文件夹从C:\OSGeo4W\apps\Qt5\plugins\platforms复制过来,其他几个文件夹为windeployqt打包生成,调试时可以没有,其他dll依赖为手动复制过来:

运行效果:

posted @ 2023-01-14 12:15  开心的许久  阅读(1444)  评论(0编辑  收藏  举报