QT与QGIS的关系和区别

Qt下开发基于QGIS的应用程序 Qt5.12.12,VS2015编译器,QGIS3.10.1 阅读详情

QT是跟MFC差不多的一个C++界面库,QT Creator是基于QT的IDE开发工具。所以,QT=MFC,QT Creator=Visual Studio。

而QGIS则是基于QT开发的一款GIS软件。

版本的关系:

注意不同版本的位数(qt-opensource-windows-x86-5.13.2包含qt creator)

注意要下载QGIS版本时,要下载devel版本。而且,QGIS的版本号要一致。建议QT5.13.2选择QGIS3.1以上版本。

选择OSGEO4W-32.exe安装,选择advanced。然后选择download.osgeo.com。然后输入qgis-dev。

这三个类库版本都不一样,到底哪个是?看一个说qgis-devel是。。就选上它吧 或者选择qgis-ltr-devel也可以。其实选qigs-full-dev,会安装整个开发环境。

https://qgis.org/api/3.10/    https://qgis.org/api/2.18/

QT下Qgis的简单使用 2、创建图层 (矢量图层类:QgsVectorLayer)(栅格图层类:QgsRasterLayer)5、使用渲染器设置图层中点的样式(QgsSingleSymbolRenderer单一渲染器)8、在图层中添加字段,并且根据图层中已有的要素id为其设置属性。3、使用类QgsFeature在图层中加入点。1、使用类QgsMapCanvas创建画布。9、使用标签,在图层中显示某一字段的属性。4、根据id在图层中删除要素。使用渲染器把点改变成飞机形状。 阅读详情

相关推荐

基于QGIS进行二次开发的正确姿势

最近一直在琢磨QGIS的二次开发,也踩过不少坑,好在最后的结果是好的。这里介绍一下我最喜欢的二次开发姿势。

KK_2018的技术博客_程序员不止是程序员 4957

QGIS-QT快速入门

QGIS-QT快速入门,很快很快

Harry233的博客 1965

QGIS介绍

QGIS的官方网站为:https://www.qgis.orgGithub地址:https://github.com/qgis/QGISQGIS采用开源证书GNU GPLv2 (GNU General Public License version 2)发布,主要采用C++语言开发,用户界面依赖Qt平台。

weixin_39676449的博客 3314

QT(5.12)+Qgis(3.10)开发环境搭建(QT Creator)

最近要倒腾一下Qgis和QT的二次开发,感觉是一个全新的领域,预计会有不少坑,而且做的过程中感觉资料也不多,于是想着要不顺手记录下来过程吧~ 网上看了几个适合的教程: 1: 最后是靠知乎大哥王峰dev的文章下成功搭建环境的,文章总结了这个环境搭建的核心:dll文件的配置。附上链接: QtCreator进行QGis二次开发(1) - 王峰dev的文章 - 知乎https://zhuanlan.zhihu.com/p/83805300 QT Creator安装 这个就直接装就好了。没有什么难度和坑。 Qgis二

j_in2018的博客 1万+

Kylin QGis二次开发环境搭建过程记录

KylinV10 Qt5.12.10环境搭建过程记录

ZachLi的博客 2702

QGIS使用之基本介绍和安装教程

今天,小崇想和大家介绍一下QGIS的基本知识。希望我们互相学习,共同进步! 何为QGIS? QGIS(Quantum GIS)是一款免费的桌面GIS软件,可运行在Linux、Unix、Mac OSX和Windows等平台。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统。它主要提供GIS数据的显示、编辑和分析、制图等功能。 QGIS的主要特点有: (1) 免费开源。(正版ArcGIS价格不菲) (2) 支持PostGIS数据库。 (3) 支持从WMS,WFS服务器中获取

weixin_47062907的博客 5098

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)

利用VS搭建QGIS二次开发环境(保姆式教学!!)

m0_53522458的博客 9695

QGIS开发入门知识

QGIS开发入门知识

mj348940862的博客 2304

【QGIS学习】02.Qt Creator配置QGIS环境问题

Qt Creator中部署QGIS开发环境,遇到的问题及解决方法。

microbaby233的专栏 1170

QT+QGIS跨平台编译(基于Qt,采用一套代码、一套框架,完成QGIS第三方库、核心库、应用程序的跨平台编译)

QT+QGIS跨平台编译。 基于Qt,采用一套代码、一套框架,完成QGIS第三方库、核心库、应用程序的跨平台编译。

LuckyHanMo的博客 4377

vs+qt+qgis环境下通过串口通信接收数据并在地图上标注出位置

先在win10系统下搭建vs+qt+qgis环境,然后利用无线数传通过串口通信接收传输的数据并在地图上标注出位置,供大家参考!

QGIS编译---QGIS3.10.6 + Qt5.11.2 + VS2015 ---32位版本

前言 1、本文编译QGIS3.X版本的初衷: 1)挑战自己。前期基于QT4.8.6和VS2010编译过QGIS 2.14.16,这次编译QGIS3.10.6带有“自虐”倾向,选择3.10.6也非偶然,是经历了QGIS3.4和QGIS3.6源码编译失败之痛后完成的,现在回想,已大概知道其中问题所在,但没来得及尝试,希望不会等太久。出于对QGIS的喜爱,本木君有一个小小的心愿,有生之年能把不同版本QGIS的源码都编译一遍,直到老去,可能这个心愿并不小罢。 2)与时俱进。笔者感觉到,QT4、VS2010、QGIS

木之野火的博客 3929

Voxel Hashing技术解析:如何解决TSDF内存爆炸问题?

本文深入解析Voxel Hashing技术如何有效解决TSDF内存爆炸问题。通过动态内存分配和空间哈希函数设计,该技术将内存占用降低96.6%,同时保持高精度重建。文章详细介绍了GPU加速实现、现代系统演进及实践指南,为实时3D重建提供工程解决方案。

m2n3b4v5c6的博客 713

QGIS3.28的二次开发五:VS使用QT插件创建UI界面

前面我们说了在创建项目时创建的是一个空项目,即不使用 Qt 提供的综合开发套件 Qt Creator,也不使用 Qt Visual Studio Tools 这类工具。但是后面发现,如果我想要有更加满意的界面布局,还是要自己写一个UI文件,如果不使用QT插件,在VS中导入自己的UI文件编译起来不是那么容易,因此介绍一下如何使用QT插件来二次开发QGIS。那么既然使用了Qt VS Tools插件,那么环境配置就要改改了!(不使用QT插件也可以,参见我下一篇博客~)

KK_2018的技术博客_程序员不止是程序员 1869

contextcapture多区块点云_多源点云数据融合的建筑物精细化建模

本文内容来源于《测绘通报》2020年第8期,审图号:GS(2020)3611号多源点云数据融合的建筑物精细化建模王树臻1, 郑国强1, 王光生1, 胡玉民2, 张德怀2, 亓伟3 ...

weixin_36301639的博客 1825

智能手环心率检测不准?用STM32+MAX30102教你实现医疗级精度(含算法优化)

本文详细解析了如何利用STM32微控制器和MAX30102光学传感器实现医疗级精度的心率检测方案。通过硬件参数调校、ADC采集优化、运动伪影消除及深度学习算法改进,显著提升智能手环在静态和运动状态下的检测精度,误差可控制在±1.5bpm以内,满足医疗电子标准。

weixin_28335283的博客 526

QGIS 内嵌 O2 库演进解析:从 OAuth 变更日志到 Qt5/Qt6 双版本认证实现

O2 是 QGIS 内置的一套 Qt 版 OAuth 1.0/2.0 客户端认证库,负责桌面与嵌入式场景下的第三方服务授权。本文以仓库中 [external/o2/CHANGES.md](https://link.gitcode.com/i/0df6219d31b7d917dd81189f35ba6c50) 这份变更日志为骨架,结合 `external/o2/src` 下的源码实现,梳理 O2 在

gitblog_00652的博客 1028

PaddleOCR实战:如何在CentOS 8.5上搭建高性能OCR识别环境

本文详细介绍了在CentOS 8.5系统上搭建高性能PaddleOCR识别环境的完整指南。从系统环境准备、PaddlePaddle框架部署到PaddleOCR的定制化安装与性能优化,提供了针对生产环境的解决方案,包括GPU/CPU环境配置、内核参数调优及常见问题排查,帮助用户实现高效OCR识别。

weixin_29223603的博客 349

保姆级教程:在Windows 10上用Qt Creator和OSGeo4W搞定QGIS 3.28.8二次开发环境

本文提供了一份详细的Windows 10下QGIS 3.28.8二次开发环境配置指南,涵盖Qt Creator与OSGeo4W的安装、项目配置、DLL依赖管理及插件开发实战。通过步骤化教程帮助开发者快速搭建稳定高效的QGIS二次开发环境,特别适合C++开发者进行地理信息系统开发。

weixin_30520015的博客 438

MCGS触摸屏Modbus TCP通讯实战:从寄存器写入到字符串处理的完整代码解析

本文详细解析了MCGS触摸屏通过Modbus TCP协议实现寄存器写入和字符串处理的完整代码,涵盖单寄存器写入、多寄存器写入及字符串传输等核心技术。文章还提供了MCGS组态环境中的实战配置步骤和常见问题排查方法,帮助开发者快速掌握工业自动化通讯的关键技术。

study的专栏 755

华为云计算——FusionCompute创建虚拟机

华为云计算——FusionCompute创建虚拟机

jks212454的博客 3676

Qgis 剖析

由于其他项目的原因,对于QGis的研究耽搁了一段时间,现在重新拾起,开始Qgis之旅。一下的研究仅是个人兴趣,Qgis对我来说也刚起步,Qt的学习也是同步进行中。QGis 二维图形引擎(暂且这样叫吧)采用了QT中QGraphicsScene、QGraphicsView、QGraphicsItem作为画图类,进行了扩充,构成了Qgis基本画图框架。这里首先介绍一下QgsGeometry 1. Qg

2094

4、LTE无人机认证:保障通信安全的新方案

本文针对LTE网络中无人机通信存在的安全风险,提出了一种基于可信第三方GCS的新型认证协议。该协议通过非对称加密和哈希函数保护IMSI等敏感信息,防止身份泄露、中间人攻击、拒绝服务攻击和位置追踪等威胁。利用Scyther工具对协议进行形式化分析,验证了其在机密性、一致性和活性等方面的安全属性,证明该方案能有效提升无人机在LTE网络中的通信安全性与隐私保护能力。

pink的博客 61

QGIS二次开发汉化全流程:从Qt翻译机制到插件中文化实践

软件开发中的界面国际化(i18n)是工程落地的重要环节。在基于Qt框架的桌面应用中,翻译机制由ts源文件、qm编译文件和QTranslator运行时组件构成,开发者通过tr()函数标记需翻译的字符串,再借助工具链完成提取、翻译和加载。这一套标准流程不仅保证了多语言扩展性,还将界面文案与代码逻辑解耦,显著降低维护成本。在地理信息系统(GIS)领域,QGIS作为主流开源平台,其二次开发常用Python或C++实现插件与定制功能。当开发者为国内用户交付QGIS插件或独立应用时,经常面临界面英文导致使用门槛高的痛点

weixin_33938733的博客 294

21天学会基于 Linux 的 NPU 固件开发--2.2 固件加载流程:request_firmware() 深度解析

本文深度解析Linux内核中NPU固件加载流程,重点剖析request_firmware()机制。内容涵盖:1)内核态与用户态的交互机制,包括同步/异步加载方式;2)NPU固件的特殊格式与加载逻辑;3)调试技巧与安全验证方案;4)提供最小化固件加载器实验。文章揭示了从文件系统到硬件初始化的完整链路,探讨了大模型时代面临的性能挑战与优化方案,如零拷贝加载技术,并提出了版本兼容性、断电恢复等关键问题的思考方向。

amy_mhd的博客 59

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python3 qgis开发_Qt+QGIS二次开发:开发环境搭建(超级详细)

Oracle数据库,join多表关联方式、union结果集合并join on : 多表关联 内连接 :与其他表连接 from 表1 t join 表2 s on t.字段1 =s.字段2 join 表3 n on n.字段3=t.字段1 或 from 表1 ...在Linux 应用层 基于i2c-dev.h 实现i2c读写/* i2c-dev.h - i2c-bus d...

weixin_39743064的博客 847

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 微软为什么拥抱开源?以.net core为例
下一篇: MXE(M Cross Environment)教程
nmj2008
博客等级 码龄15年 115粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值