QGIS开发五:使用UI文件

这篇具有很好参考价值的文章主要介绍了QGIS开发五:使用UI文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面我们说了在创建项目时创建的是一个空项目,即不使用 Qt 提供的综合开发套件 Qt Creator,也不使用 Qt Visual Studio Tools 这类工具。

但是后面发现,如果我想要有更加满意的界面布局,还是要自己写一个UI文件,如果不使用QT插件,在VS中导入自己的UI文件编译起来不是那么容易,因此介绍一下如何使用QT插件来二次开发QGIS。

那么既然使用了Qt VS Tools插件,那么环境配置就要改改了!(不使用QT插件也可以,参见我下一篇博客~)

第一步:安装插件

在安装 Qt Visual Studio Tools,我这里安装的是2.7.2版本,安装低版本记得断网,然后去把自动更新取消勾选。

下载地址 Index of /development_releases/vsaddin/2.7.2

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

安装完毕记得配置一下QT目录,我这里使用的QT是5.14.2版本。

 第二步:创建Qt Widgets Application

记得勾选XML,因为QgsMapCanvas需要用到QDomNode文件,而QDomNode是一个XML文件,包含在Qt的XML library中。把Debug取消勾选,经测试在Debug环境下运行会报如下错误

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

 创建的截图如下

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

然后这里可以选择QMainWindow,当然QWidget也可以

 QGIS开发五:使用UI文件,QGIS,qgis,环境配置

 第三步:配置VS2017

和上次这篇文章QGIS二次开发二:不重新编译QGIS进行二次开发_程序员班长的博客-CSDN博客

中配置VS的步骤一致,区别就是把和QT相关的都忽略即可。

VC++目录,包含目录、库目录,配置如下

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

C/C++,预处理器,配置如下 

_USE_MATH_DEFINES

 QGIS开发五:使用UI文件,QGIS,qgis,环境配置

链接器,输入,附加依赖项,配置如下 

qgis_core.lib
qgis_gui.lib

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

在C/C++,语言,设置C++语言标准 

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

 在C/C++,所有选项,设置附加选项为/utf-8

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

设置调试信息,需要注意一下,先输入 

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

 然后记得取消勾选“从父级或项目默认设置继承”

 QGIS开发五:使用UI文件,QGIS,qgis,环境配置

 否则会报错

QGIS开发五:使用UI文件,QGIS,qgis,环境配置

修改main.cpp代码如下,记得修改里面的路径,成功运行代表配置成功!文章来源地址https://www.toymoban.com/news/detail-639652.html

#include <qgsapplication.h>
#include <qgsproviderregistry.h>
#include <qgsmapcanvas.h>
#include <qgsvectorlayer.h>
 
int main(int argc, char **argv)
{
	// 创建 QgsApplication 实例
	QgsApplication app(argc, argv, true);
	// 设置并检查数据插件目录
	QgsProviderRegistry::instance("D:/OSGeo4W/apps/qgis-ltr/plugins");
 
	// 控制台打印已载入的插件目录
	qDebug() << "QGIS data providers loaded:" << QgsProviderRegistry::instance()->providerList();
 
	// 设置 GDAL 数据目录环境变量
	qputenv("GDAL_DATA", "D:\\OSGeo4W\\apps\\gdal\\share\\gdal");
 
	// 创建 QgsCanvas 画布实例
	QgsMapCanvas c;
 
	// 从磁盘 .shp 文件创建矢量图层
	QgsVectorLayer* pVectorLayer = new QgsVectorLayer(u8"E:\\TestImage\\全国省界\\全国省界.shp", u8"省界");
 
	// 确认图层是否创建成功
	qDebug() << "Is layer valid:" << pVectorLayer->isValid();
 
	// 将图层添加到画布上
	c.setLayers(QList<QgsMapLayer*>() << pVectorLayer);
 
	// 设置画布窗体标题并显示画布
	// 画布本身是 QWidget 的子类,因此可以承担 QWidget 的所有操作
	c.setWindowTitle(u8"QGIS 二次开发:画布");
	c.show();
 
	// 缩放到图层的空间范围
	c.zoomToFullExtent();
 
	// 启动 QgsApplication 实例
	return app.exec();
}

到了这里,关于QGIS开发五:使用UI文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QGIS二次开发四:实现图层列表

    在实际开发中我们通常会遇到同时显示多个图层,并且还要实时显示和隐藏各图层的需求,如同 ArcGIS 的图层列表那样,界面左侧显示图层列表,列出当前已加载的所有图层,同时每个图层前面有复选框可以控制图层的显示/隐藏;界面右侧为画布,按图层列表的适当顺序显示

    2024年02月13日
    浏览(27)
  • Qgis二次开发-QgsMapTool地图交互工具详解

    1.简介 QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如,地图平移和缩放功能被实现为地图工具。 QgsMapTool是抽象基类,以下是类的继承关系: QgsMapToolEdit:用于编辑矢量几何图形的映射工具的基类  QgsMapToolEmitPoint:一个地图工具,当单击地图时,它只是发出一

    2024年02月16日
    浏览(34)
  • Qt下开发基于QGIS的应用程序

    由于有在背景地图上进行动态轨迹(曲线)显示的需要,故采用Qt+QGIS的方案! Qt5.12.12,VS2015编译器,QGIS3.10.1。 在配置之前,电脑是新装机的系统,没有任何相关软件版本。 在Qt官网(https://download.qt.io/)或国内镜像网站(https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt)或网络搜索

    2024年02月14日
    浏览(40)
  • QGIS--开发OpenSCENARIO动态场景(三)--制作动态场景

    目录 一、添加scenario,carla的环境变量 二、打开QGIS3,连接carla 三、添加车辆 1. 在已选地图上添加环境 2. 添加ego小车 3.添加adversary小车  四、添加场景操作 1.设置adversary加速行驶  2.设置adversary车辆匀速行驶: 3.设置adversary车辆减速运动: 界面详细: 五、添加ego车辆 运行时

    2024年02月02日
    浏览(29)
  • QGIS3.28的二次开发一:编译工程

    更新:最近写了个3.18.3版本的编译教程,没有出现任何问题。 QGIS3.18编译教程_程序员班长的博客-CSDN博客 环境:VS2019+OSGeo4W+CMake_3.26+Cygwin64+QGIS_3.28 注意:一定要按照步骤顺序来! VS2019下载链接 https://my.visualstudio.com/Downloads?q=visual%20studio%202019wt.mc_id=o~msft~vscom~older-downloads 下载完

    2024年02月15日
    浏览(36)
  • QGIS二次开发:集成二维CAD控件MxDraw

    本文记录在QGIS中集成MxDraw控件的方法。 参见笔者博文“FreeCAD二次开发:集成二维CAD控件MxDraw”所述的安装方法。 参见笔者博文\\\"Windows 10下编译安装QGIS\\\"所述的编译安装方法。 按照QGIS的管理,Qt ui文件可放到src/ui目录及其子目录下。因此,可将MxDrawView.ui拷贝到src/ui/gd目录下,

    2024年02月15日
    浏览(26)
  • QGIS3.28的二次开发九:添加矢量要素

    对矢量要素的编辑是 GIS 软件很重要的功能点之一,也是最难实现的功能点之一。编辑矢量要素涉及到很多方面的考虑,包括且不限于矢量要素的几何类型,拓扑关系,构成要素的节点的增删改,编辑会话 (session) 的启动、回溯和提交,要素属性的增删改等。本文不会也不可能

    2024年02月12日
    浏览(31)
  • 前端使用QGIS工具生成地图

    1.1 查找 json 数据的两个网址(个人常用) 1.1.1 DataV.GeoAtlas 网站 DataV.GeoAtlas 这个网站不能具体到县内包含的城镇分化,但是对于县级以上的地图数据,使用起来很方便。 1.1.2 POI数据 网站 POI数据 这个网站是我在做县级具体分布 json 数据时找到的,据我使用的过程看,好像没有

    2024年02月22日
    浏览(31)
  • 12.qgis二次开发qt中实现图层树右键图层更改图层颜色,以及图层标注。

    qgis图层树右键图层更改图层颜色,以及图层标注。 新建一个类mygistreeviewmenu用于管理图层树,新建一个窗体类symbolstyle用于选择颜色。新建一个窗体类labelcontrol用于设置标注。 构造函数中添加 添加一个窗体类labelcontrol用于显示标签。

    2024年02月05日
    浏览(37)
  • QGIS生成热力图

    目录 1  QGIS介绍 2  实现效果 3  具体步骤 3.1 获取北京市地图(区县级) 3.1.1 方法一:直接找到北京市地图  3.1.2  方法二:若没有单独的北京市地图,从中国地图上提取 3.2  获取数据 3.3  导入数据 Quantum GIS(QGIS)是相当友好的开源地理信息系统,使用GNU(General Public Lic

    2024年01月23日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包