自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(310)
  • 资源 (30)
  • 收藏
  • 关注

原创 3. qgis c++二次开发初始化介绍

上篇文章qgis二次开发环境搭建(qgis-3.28.6+qt5.15)的末尾介绍了如何新建一个Qt工程,链接QGIS库并调用,工程代码在仓库中。但是要调用更复杂的QGIS函数需要添加一些初始化函数,下边将介绍如何初始化。目前在代码只用到了以上几个初始化,随着项目的深入可能会遇到新的需要初始化的情况!

2024-09-20 17:08:39 259

原创 2. qgis c++ api 整体框架详解

转载。

2024-09-20 16:57:12 700

原创 QML Text 换行问题

Text中wrapMode只有明确width情况下才会起作用!

2024-09-20 14:34:24 46

原创 1. qgis二次开发环境搭建(qgis-3.28.6+qt5.15)

本文介绍了QGIS二次开发环境的搭建,完成了以下工作ubuntu22.04下,QGIS3.28.8编译ubuntu22.04下,使用QCreator调试QGIS3.28.8ubuntu22.04下,新建工程,引入编译好的QGIS库,并成功调用Qgis::releaseName()Windows10下,安装QGIS以及Release开发库Windows10下,新建工程,引入QGIS库,并成功调用Qgis::releaseName()QGIS3.28.8下载地址。

2024-09-19 19:32:32 727

原创 QT6 QML Image加载图片不显示的问题,编译方式CMake

主要是记录QT6QML Image加载图片不显示的问题,编译方式CMake。

2024-09-16 11:35:54 362

原创 QML优化,当列表数据过多时,切换tab可能会导致卡顿的情况。

当列表数据过多时,切换tab可能会导致卡顿的情况。为了优化这个问题,我们可以采取以下措施:分页加载数据:不要一次性加载所有数据,而是分页加载。当用户切换到列表时,只加载当前页的数据,而不是全部数据。这可以减少初始加载时间和内存占用。使用虚拟视图:在QML中,可以使用ListView的flickableItem属性来实现虚拟视图。这意味着只有在视图中可见的项才会被实例化,而不是所有项都会被创建。这可以减少内存占用和加速切换tab的速度。异步加载数据:使用后台线程来加载数据,以避免阻塞主线程。

2024-09-13 17:16:49 934

原创 C++ Qt开发:运用QJSON模块解析数据

转载Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QJson组件的实现对JSON文本的灵活解析功能。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,也易于机器解析和生成。该格式是基于JavaScript语言的一个子集,但它是一种独立于语言的数据格式,因此可以在许多不同的编程语言中使用。

2024-09-11 18:38:36 1130

原创 Qt Base64数据保存成QImage 踏坑(data:image/png;base64)

Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片。在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。base64,base64编码的png图片数据。

2024-09-11 10:39:34 953

原创 用一个vector删除另一个vector中的元素

为了解决项目中的一个问题,需要 用一个vector中指定的元素删除另一个vector。我想要用vector2中指定的元素去删除vector1里的元素。有两个vector<int> vect1和vect2。

2024-09-10 15:48:31 172

原创 vector 中元素的删除

乍一看这段代码,很正常。其实这里面隐藏着一个很严重的错误:当b.erase(it)之后,it就变成了一个野指针,对一个野指针进行 it++ 是肯定会出错的。这段代码也是错误的:1)无法删除两个连续的"3";中删除元素的方法是:b.erase(it);这2个代码的关键是去掉it++ 或者 i++, 这个在代码循环里不删除元素时才运行,都在else 里面。但是删除vector 中的元素有些诡异(^_^),稍不注意,就会出错。下面先给出基本vector ,如下代码,然后我们来删除为3的元素。核实我们实现了预期。

2024-09-10 15:47:39 147

原创 OpenCPN Compiling on Windows

官方编译教程。

2024-09-01 10:34:01 932

原创 Visual Studio Community 2022 + Win10 编译 OpenCPN 5.9.0 记录

转载。

2024-09-01 10:27:00 388

原创 VS2017 + Win10 下的 OpenCPN 5.0.0 编译过程小结

本文介绍了OpenCPN 5.0.0版本的编译过程,官方网站给出了一个流程,但是亲测后发现还是有一些小坑,官方给出的命令行操作由于网络(可能需要科学上网)不一定畅通,导致难以下载成功,在此把本人成功配置并编译的过程分享出来,让需要的人少走弯路。目标基于VS2017(对应VC15)编译最新版OpenCPN的 debug和 realease版本。

2024-09-01 10:21:29 820

原创 【C++】两个例子解决 unsigned int 与 int 运算问题

int -6会被转为 unsigned类型,unsigned -6 超过unsigned范围,会变为2^32 - 6,一个很大的正数。注意当 int a = -10,unsigned int b = 10。vector.size()与-1比较时同样,vector的size是无符号整型,有符号整型被自动转化为无符号整型,出现负数大于size的情况。若两整型分别为有符号和无符号,若无符号级别高,则无符号;5、这种情况的出现主要是涉及到了隐式转换,不同类型的数据进行操作时,算术运算中的低类型会转换为高类型。

2024-08-28 17:12:59 347

原创 QML实时加载图片的三种方法(QQuickImageProvider,QQuickPaintedItem,QQuickItem)

总结:第一种是最臃肿和最危险的,容易Crash,虽然我只在ios下复现过,我感觉在安卓和桌面端也有类似危险。追求极致就选第三种吧,2和3都是场景渲染的方法只不过2比3内部多封装了些东西渲染多了些步骤所以效率没有3高,3更灵活更高效,都是用的GPU而不是CPU,不对导致你的程序卡顿,CPU爆炸。这种方式代码简单,经测试在安卓和桌面端运行正常,速度比较快,同样在iOS下绘制速度上不去,大概在10帧左右,如果不是在ios平台这种方法就可以啦。如果是接受流数据做实时显示的话用这种方法最为流畅,亲测,

2024-08-26 17:47:23 294

原创 Qml中实现多视图,多图像源(QImage / QPixmap)

4、请求将调用 QQuickImageProvider 中的 requestImage() / requestPixmap() / requestTexture(),藉此返回 C++ 提供的图像 ( QImage / QPixmap / QQuickTextureFactory )。然而,将 cache 设置为 false 并没有卵用,仍然需要使用 Date.now() 来请求一个不同的图像,才能造成刷新的效果( 也许这是一个 Bug),但不管怎么说,这个坑必须小心。

2024-08-26 15:27:15 692

原创 Qml Image 截取一部分图片形式

Qml Image 截取一部分 :每次只显示一张图片的一部分,以有不同的状态显示。

2024-08-26 10:49:19 173

原创 Typore添加倾斜的文字水印

4. fill='lightgray' 可以调整水印的颜色,lightgray 是一种比较浅的灰色。上述代码把文字水印内容写死在代码里了。

2024-08-23 16:51:26 148

原创 C++ 与 QML 之间进行数据交互的几种方法

QML类型注册(QML Type Registration):可以将C++ 对象注册为自定义的QML类型,使得QML可以直接创建和使用这些对象。通过在C++ 中使用 Q_PROPERTY 宏和 Q_INVOKABLE 函数,可以将C++ 类注册为QML类型。通过在C++ 对象中使用Q_PROPERTY宏定义属性,然后在QML中使用绑定语法将属性与QML元素关联起来。这样,当C++ 对象的状态发生变化时,可以通过信号与槽机制将这些变化传递给QML界面。

2024-08-21 15:10:41 497

原创 QML控件类型:Slider(竖直滑动条)

网上都是水平滚动条,没找到竖直的,自己写个。

2024-08-20 17:51:40 158

原创 QML_滑块Slider

live : bool,保存在拖动相应的控柄时,滑块是否为first.value和second.value属性提供实时更新。3、orientation : enumeration,方向,默认为Qt.Horizontal(水平)4、position : real,保存手柄的逻辑位置,范围为0.0 - 1.0。first.visualPosition : real,保存第一个句柄的视觉位置。first.position : real,保存第一个句柄的逻辑位置。vertical : bool,保存滑块是否垂直。

2024-08-20 14:56:02 824

原创 qml QtQuick2 ScrollView代码控制ScrollView滚动、ScrollView自动滚动

QtQuick1的ScrollView有flickableItem可以直接控制,但目前尚未找到QtQuick2的ScrollView的哪个属性可以直接控制其滚动,所以此方法本质上是倒腾到ScrollView的滚动条,通过控制滚动条的代码来控制ScrollView滚动到某处,需要对其滚动条自定义,滚动到的位置需要列式计算。不过这会带来个小问题就是自定义ScrollBar后当使用滚轮滚动时会同时 显示出来另一个滚动条在顶部不动,推测是自定义完滚动条后原本的滚动条并未隐藏且不关联了,解决方法可找。

2024-08-20 10:10:43 435

原创 InputMethodHints

2024-08-16 16:45:53 411

原创 电子海图OpenCPN源代码编译和运行(VS2017 + Win10)

免费的开源海图仪和船用GPS导航软件OpenCPN是一款自由软件(GPLv2),用于创建简洁的海图绘图仪和导航软件,可以在航行过程中使用或者作为计划工具。OpenCPN提供大量免费海图下载,支持航线设计、航行监控,能接入GPS、AIS数据,能叠加雷达图像,还满足气象导航方面的要求,还有众多插件可供选择,且一直持续改进更新中。OpenCPN由C++编写,遵从GPLv2协议,其源代码可以轻易的从github获取。

2024-08-15 13:40:52 876

原创 【QT】C++和QML使用多线程优化界面切换卡顿的方法

qt提供了一种声明式语言qml,可以使用一些可视组件以及这些组件之间的交互来描述用户界面,而c++可以只负责后台逻辑的处理,将界面和后台分离开来,由qml来做UI界面,c++负责后端处理,对我个人来说,这样的方式大大的方便了对界面和逻辑的修改和维护;但是还是有问题的存在,就是有的耗时操作再子线程中一直运行,一直在跑,但是界面就一直在切换,如果是需要获取在耗时操作后的结果显示在界面的话,这种方法显然是不行的,未完待续。

2024-08-09 19:12:28 492

原创 矢量文件坐标转换:2000坐标系转换为wgs84坐标系,具体代码实现

在上述代码的主程序部分,我们指定了一个Shapefile文件路径和保存目录,并调用了 VectorTranslate 函数将其转换为ESRI Shapefile格式,并重新投影到WGS84坐标系。这些步骤共同构成了一个完整的矢量数据转换流程,确保了数据的准确性和实用性。最近在处理矢量样本的时候,遇到一些shp文件的坐标系为2000坐标,需要统一地把非WGS84坐标系的矢量转换为WGS84坐标系。首先,在转换之前,通过检查并创建目标保存目录,保证了正确的目录结构,这对于避免转换失败或产生错误输出至关重要。

2024-08-07 18:11:44 377

原创 QML ListView snapMode

SnapOneItem:和SnapToItem类似,区别是,SnapToItem判断条件是半个Item距离,而SnapOneItem判断距离比较小,其本意是当计算机认为使用者期望显示下一项时滑动到下一项(或者上一项)。SnapToItem的特点是当两个Item间距离越大,滚动到下一项需要拖动的距离越大。SnapToItem:当放开鼠标时,移动距离超过半个Item时,自动滑动到下一个Item,否则自动滑动回当前Item。NoSnap:列表滚动停止时可以停在任意位置,即便第一项显示不全。

2024-07-26 11:00:13 183

原创 QML鼠标事件传递(鼠标穿透)

【代码】QML鼠标事件传递(鼠标穿透)

2024-07-25 19:08:16 306

原创 【1】CPU飙升到200%以上问题汇总

index是否缺失,如果是,则建立索引,也有可能是每个SQL消耗资源并不多,但是突然有大量的session连进导致cpu飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,如:限制连接数等。但是,一旦高并发场景,要么走到了死循环,要么就是在做大量的 GC, 容易出现这种 CPU 飙升的情况,CPU飙升900%,是完全有可能的。当时遇到这个情况,分析了当前的数据量、索引情况、缓存使用情况。3. 优化的过程,往往不是一步完成的,而是一步一步,执行一项优化措施,再观察,再优化。

2024-07-25 11:49:22 1436 2

原创 【QML】Flickable与ScrollView,滚动,滑动

无法滑动,适合非触摸设备。

2024-07-23 17:22:29 556

原创 C++中如何高效拼接两个vector

在C++编程中,vector是一种常用的数据结构,它代表了一个可以动态改变大小的数组。在实际开发中,经常需要将两个vector拼接在一起,形成一个新的vector。本文将详细介绍如何在C++中拼接两个vector,并探讨不同方法的性能差异。C++ STL中的提供了成员函数,可以用来在指定位置前插入另一个容器的全部或部分元素。这是拼接两个vector的一种直观方法。输出1 2 3 4 5 6使用函数进行拼接时,如果vector需要扩展容量,可能会导致内存重新分配和数据复制,从而影响性能。不过,在大多

2024-07-20 10:53:59 1323

原创 C++ move的含义及使用场景(C++代码示例)

std::move在C++中是一个强大的工具,适用于各种场景下的资源管理和性能优化。通过正确使用std::move,可以避免不必要的深度拷贝,提高程序的效率,并且简化资源管理的逻辑。

2024-07-19 18:01:45 957

原创 一文了解C++内存对齐

为什么要内存对齐?内存对齐的副作用// size 12struct one {char a;int b;short c;};// size 8struct two {int b;char a;short c;};如何内存对齐总结

2024-07-17 13:59:50 187

原创 Qt将毫秒转化为时分秒格式

可以灵活调节函数返回值的格式,使满足显示需求,本例中返回的形式是0:18:57,表示0小时18分57秒。

2024-07-17 10:42:46 323

原创 QT将秒数转换为时分秒格式

【代码】QT将秒数转换为时分秒格式。

2024-07-17 10:41:17 200

原创 Qt基于Qml选择开关示例

【代码】Qt基于Qml选择开关示例。

2024-07-17 10:40:39 227

原创 一种特殊的NC文件转TIF——知道每个像元的坐标值怎么转为TIF

【代码】一种特殊的NC文件转TIF——知道每个像元的坐标值怎么转为TIF。

2024-07-16 12:22:25 165

原创 NetCDF(nc)数据读写与转换为GeoTIFF方法的详细介绍

栅格数据是根据一定规则将地理空间分割成有规律且大小相同的网格,每一个网格称为一个像元,并在各像元上赋予相应的属性值来表示实体的一种数据形式。每一个像元的位置由它的行列号定义,所表示的实体位置隐含在栅格行列位置中。每个栅格像元都有一个值,代表由其行列数所决定的该位置上的实体的某一特征,如果像元在栅格数据所表示的实体的范围之外,则其像元值为no data或null。栅格数据可能包含多个波段,各个波段具有相同的行列数,反映同一范围下实体在不同方面的信息。在栅格结构中,点用一个栅格像元表示;

2024-07-16 12:16:44 990

原创 QML SplitView

SplitView 是 Qt Quick Controls 2 中一个强大而灵活的组件,用于创建带有可调整大小的分割区域的界面。这里是对 SplitView 属性和功能的总结:核心属性1. orientation:定义 SplitView 是水平 (Qt.Horizontal) 还是垂直 (Qt.Vertical) 分割。2. handle:允许自定义分割线的外观和行为,通常是一个 Item 或 Component。

2024-07-15 14:32:10 763

原创 QML可拉伸、可拖拽为独立窗口的UI框架

本文来源于项目预研,根据项目需求,需要新的客户端软件且使用qml实现。之前没有使用过qml,也是通过这个demo进行学习。

2024-07-15 14:04:56 365

银河麒麟V10环境下 netcdf-c-4.9.2, netcdf-cxx-4.3.1相关库

银河麒麟V10环境下 netcdf4 相关库,为了使用方便,我已经将zlib,hdf5, curl, netcdf-c, netcdf-cxx 三方库统一放到lib下面,这样在qt 中直接可以在pro环境中就可配置使用。 虽然我没有验证过,但是觉得在ubuntu, centos环境下仍然可用。

2024-04-19

HLMSEditor/bin目录下缺少的dll文件

HLMSEditor/bin目录下缺少的dll文件 HLMSEditor/bin目录下缺少的dll文件 使用vs2019 x64 Debug模式下编译

2023-05-24

ogre 3.16.4 vs2019 源码编译依赖库

ogre 3.16.4 vs2019 源码编译依赖库

2023-04-25

ContextCapture 中文教程完整版

ContextCapture 中文教程完整版

2020-08-19

arcsde10.2.txt

arcsde10.2安装包,亲测有效

2020-07-01

Meshlab官方教程.rar

Meshlab官方教程.rar

2020-05-15

泊松曲面重建论文源码分析PoissonRecon.cpp.txt

泊松曲面重建论文源码分析PoissonRecon.cpp

2020-04-25

CGAL-5.0.2官方文档

CGAL-5.0.2官方文档

2020-02-28

xshell5安装配置.docx

xshell5安装配置,连接vmware12pro.xshell5安装配置,连接vmware12pro.xshell5安装配置,连接vmware12pro.

2020-02-25

CGAL Arrangements and Their Applications A Step-by-Step Guide.rar

CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,用C++语言提供高效、可靠的算法库。被广泛应用于几何计算相关的领域,如信息可视化系统,计算机辅助设计,分子生物学,医学图像处理,计算机图形学,机器人设计等。

2020-02-15

架构探险——从零开始写Java Web框架 绝对完整!强烈推荐

《架构探险——从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用IDEA、Maven、Git等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该 Web 应用,完善相关细节,并对已有代码进行优化;然后基于传统 Servlet 框架搭建一款轻量级 Java Web 框架,一切都是从零开始,逐个实现类加载器、Bean容器、IoC框架、MVC框架,所涉及的代码也是整个框架的核心基础。为了使框架具备AOP特性,从代理技术讲到 AOP 技术,从 ThreadLocal 技术讲到事务控制技术。最后对框架进行优化与扩展,通过对现有框架的优化,使其可以提供更加完备的功能,并以扩展 Web 服务插件与安全控制插件为例,教会读者如何设计一款可扩展的Web应用框架。 [1]

2019-01-16

《跟老男孩学习Linux运维:Shell编程实战》带标签目录 绝对完整!!!

郑重声明:绝对完整!绝对完整!绝对完整!重要的事情说三遍。本文是在学习《跟老男孩学Linux运维之shell编程实战》这本书时记录的知识点。看了这本书,我受益匪浅,当然这仅是我个人观点。下面我们言归正传,开始了解一下shell脚本吧!

2019-01-09

跟老男孩学linux运维 核心系统命令实战-高清-完整-带目录 绝对完整!!! 绝对完整!!!

郑重声明:绝对完整!!! 绝对完整!!!本书是一本较完整的、偏重实战的Linux命令图书,但并非大而全,很多命令讲解均取之于企业中解决问题的实战案例,并结合老男孩十几年的运维工作和教学工作进行了梳理。全书从脉络上共分为12章,具体分布如下。 [1] 第壹章为Linux命令行简介,第2章讲解的是文件和目录操作命令,第3章讲解的是文件过滤及内容编辑处理命令,第4章讲解的是文本处理三剑客,即grep、sed、awk。第5-6章讲解的是Linux信息显示与搜索文件、文件备份与压缩等命令。第7-8章讲解的是Linux用户管理及用户信息查询、磁盘与文件系统管理等命令。第9-11章讲解的是Linux进程管理、网络管理、系统管理等命令。第12章讲解的是Linux系统常用的Bash内置命令。

2019-01-09

跟老男孩学linux运维 web集群实战

郑重声明:网上一些资源并不完整,本书是我购买的完整电子版!绝对完整!!!《跟老男孩学Linux运维:Web集群实战》针对中小规模网站集群的搭建、部署、优化进行了详细讲解,全书可分为三大部分,其中第一部分讲的是Linux相关基础且重要的知识,第二部分针对当下流行的Web环境架构(LNMP)的搭建及企业级Web优化等进行了讲解,第三部分讲的是Web集群后端数据存储和Web集群前端负载均衡。

2019-01-09

汤国安 地理信息教程课后答案

汤国安 地理信息教程课后答案汤国安 地理信息教程课后答案,本人亲自呕心沥血整理,绝对完全。如果有谁需要课本电子版,请给我留言。这里为课后答案。

2018-08-22

地理信息系统概论 考研参考书

考研指定参考用书,地理信息概论考研指定参考用书,

2018-08-16

javascript基础教程(第八版)

javascript基础教程(第八版),中文完整版本。适合小白。图灵社区推荐入门书籍。也适合想进一步提高的各位同学

2017-10-09

java Threads and the Concurrency Utilities

java Threads,Concurrency Utilities.2015年出版的最新线程书籍。英文原版,目前还没中文版。看不懂的不要下载

2017-10-08

深入React技术栈

深入React技术栈,全面深入详细介绍react,图灵教育图书出版社系列。深入React技术栈,全面深入详细介绍react,图灵教育图书出版社系列。

2017-09-04

jquery官方指定教材三本

[Learning.jQuery(4th,2013.6)].Jonathan.Chaffer.文字版 jQuery_Succinctly JQuery In Action(us_en) 官网下方推荐的三本书,这里提供了pdf版本的,希望对大家有帮助。

2017-06-18

jquery ui cookbook jquery ui官方指定参考书系列二

jquery ui cookbook ( jquery ui官方指定参考书系列二,原版扫描)

2017-06-15

jquery in action

action系列经典书籍

2017-06-15

Learning jQuery 第四版 官方指定参考书

jquery官方指定参考书,适合初学者和想进一步提升jquery水平者

2017-06-15

head first servlet&jsp

servlet jsp

2017-06-06

Node.js实战 图灵系列

图灵系列清晰介绍node.js的实用性,特别适合初学者。

2017-05-31

jstl 源代码

jstl完整的源代码,已经验证过

2017-05-30

Head first Ajax

head first ajax

2017-05-25

java se 8.0 pdf

2017-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除