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依赖为手动复制过来:
运行效果:
标签:map,canvas,QGIS,apps,OSGeo4W,qgis,二次开发,include,搭建 From: https://www.cnblogs.com/moonkin/p/17051560.html