QGis二次开发(一)环境搭建

qgis二次开发

一、下载
qgis
在官网下载的目前稳定版3.16
https://www.qgis.org/en/site/forusers/download.html
QGis二次开发(一)环境搭建
QGis二次开发(一)环境搭建
osgeo4w 安装
QGis二次开发(一)环境搭建
这一步需要更改,其他不需要更改,路径可以改变。
QGis二次开发(一)环境搭建
这里选择自己需要的文件进行下载。搜索框中输入
qgis-ltr-devel
qt5-devel
选择相应的库文件;

然后安装独立安装的QGIS3.16,不用做出改变;

将相应的库文件拷贝到独立安装的QGIS3.16/apps下,
QGis二次开发(一)环境搭建
vs2017
在官网下载的社区版
vs-qt插件(插件没有用最新版)
我会把安装包都传到资源上,大家自取;或者找我免费私发。
二、基本步骤
接下来就是配置环境,很多文章都写了,我主要记录自己遇到的问题。
1.找不到ui_xxx.h文件,这个问题主要在uic.exe,如果缺少库就把相应的库拷到uic.exe同文件目录下,一般可以解决问题。
2.QGis二次开发(一)环境搭建
QGis二次开发(一)环境搭建
这个问题好像其他人没有遇到过。
3.严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2065 “M_PI”: 未声明的标识符 (编译源文件 main.cpp) dierci d:\program files\qgis 3.16.11\apps\qgis-ltr\include\qgsvector.h 175
C/C++ -> 预处理器 ——> _USE_MATH_DEFINES

三、遇到的问题

//#include "dierci.h"
#include <QtWidgets/QApplication>
#include "dierci.h"
#include <qgsapplication.h>
#include <qgsproviderregistry.h>
#include <qgsmapcanvas.h>
#include <qgsvectorlayer.h>
#include <qgsproject.h>

int main(int argc, char *argv[])
{
	//QApplication a(argc, argv);
	QgsApplication a(argc, argv, true);
	QgsApplication::setPrefixPath("D:\Program Files\QGIS 3.16.11\apps\qgis-ltr", true);//注意切换你的路径
	QgsApplication::initQgis();  //初始化QGIS应用
// 创建 QgsCanvas 画布实例
QgsMapCanvas c;

// 从磁盘 .shp 文件创建矢量图层
QgsVectorLayer* pVectorLayer = new QgsVectorLayer(u8"D:/zhx/qgis_sample_data/shapefiles/airports.shp", u8"市级行政区");

// 确认图层是否创建成功
qDebug() << "Is layer valid:" << pVectorLayer->isValid();

// 将图层添加到画布上
c.setLayers(QList<QgsMapLayer*>() << pVectorLayer);

// 设置画布窗体标题并显示画布
// 画布本身是 QWidget 的子类,因此可以承担 QWidget 的所有操作
c.setWindowTitle(u8"QGIS 二次开发:画布");
c.show();

// 缩放到图层的空间范围
c.zoomToFullExtent();

//dierci w;
//w.show();
return a.exec();

}

我看了很多其他大佬的文章,等一会贴出来,写文章主要是为了自己看,如果有人有问题问我,在评论区提问就可以。

上一篇:QGIS-01:加载在线地图


下一篇:QGIS的配置?