自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 问答 (3)
  • 收藏
  • 关注

原创 QML通过XMLHttpRequest实现HTTP通信

QML通过XMLHttpRequest实现HTTP通信 摘要:QML可直接使用JavaScript的XMLHttpRequest对象进行HTTP请求,其实现与标准浏览器相似但略有不同。文章详细介绍了XMLHttpRequest的属性(如readyState、status)、方法(open、send等)和事件处理(onreadystatechange、onerror等),并提供了完整的请求流程示例。重点说明了如何配置请求头、监听状态变化以及处理响应数据,还包含FormData文件上传等进阶用法。该方案适用于Q

2025-07-01 21:49:35 1106

原创 Python之一文入门Pandas

本文介绍了Python数据分析库Pandas的核心数据结构Series。主要内容包括: Series概述:一维数据结构,包含索引(index)和值(values),类似Excel列数据; 创建方法:通过列表、标量值、字典和ndarray四种方式创建Series,并说明index参数的作用; 基本操作:包括数据获取(values/index访问)、数据访问(in/索引/位置/get方法)、缺失值检测和切片操作; 特性:支持向量化操作,具有类似NumPy的广播机制。Series作为Pandas基础数据结构,为数

2025-07-01 21:47:55 1044

原创 枚举类型enum和enum class的区别

本文对比了C++中传统enum和C++11引入的enum class的主要区别。传统enum成员直接暴露在作用域中,容易造成命名冲突,且支持宽松的隐式类型转换;而enum class采用作用域限定访问,避免命名冲突,并增强类型安全,不支持隐式转换,必须显式转换。文中还介绍了两种枚举类型在命名规范、Qt/QML使用等方面的差异,并指出enum class可以指定底层类型。通过代码示例清晰展示了两种枚举类型在定义和使用上的不同特点。

2025-06-30 21:59:25 813

原创 QT中QSS样式表的详细介绍

本文介绍了Qt样式表(QSS)的基本概念和使用方法。QSS是一种类似CSS的机制,用于自定义Qt应用程序的外观,支持控件颜色、字体、边框等样式设置。文章详细讲解了QSS的语法结构、选择器类型(包括类型选择器、类选择器、子控件选择器和状态选择器)以及Qt常用控件的样式支持。开发者可通过代码或Qt Designer设置QSS,实现样式与逻辑分离、动态主题切换等功能。QSS提高了界面设计的灵活性,同时保持了跨平台的一致性。

2025-06-30 21:58:16 1010

原创 一文入门JS

本文介绍了JavaScript(JS)的基础知识及其在Web开发和QML中的应用。主要内容包括:1) JS与HTML、CSS并称Web三大核心技术,负责网页交互;2) JS与QML的紧密集成关系;3)基础语法如代码格式、注释、输入输出;4)变量声明方式(let/const/var)及其区别;5)数据类型分类(原始类型和引用类型)及常用方法;6)Number类型的转换和格式化方法。文章还强调了JS在QML中的特殊使用方式,如无需分号、直接使用console.log等特性。

2025-06-29 18:19:08 785

原创 一文入门Python

Python入门基础摘要 本文介绍了Python的基础知识,适合有C/C++背景的开发者快速入门。主要内容包括: 安装与运行:通过官网下载安装Python,两种运行方式(编译文件或命令行交互模式) 基础语法: 使用缩进(4空格/TAB)而非{}划分代码块 单行注释用#,多行用'''或""" 变量无需声明类型,可动态改变 支持多变量同时赋值(如x,y,z=1,2,3) 数据类型: 数值(int、float、complex) 字符串(支持切片、f-string格式化) 布尔值(Tr

2025-06-29 18:17:40 998

原创 C++使用大小括号初始化变量

本文区分了C++中()和{}在变量初始化时的不同用法:()用于构造函数初始化,支持隐式类型转换;{}用于列表初始化,进行严格类型检查。文章介绍了默认初始化、赋值初始化、构造函数初始化和列表初始化四种方式,强调列表初始化(C++11)更安全,能避免未初始化错误,支持空列表默认值填充。重点对比了两种语法在类对象初始化时的差异,指出列表初始化优先调用initializer_list构造函数且不支持隐式转换,而构造函数初始化则更灵活。

2025-06-28 13:48:07 660

原创 Qt设置窗口置顶(避免窗口隐藏)

本文介绍了两种在Qt中设置窗口置顶的方法。方法一通过windowFlags()和setWindowFlags()操作窗口标志,但存在窗口自动隐藏和闪烁的问题。方法二改用windowHandle()的flags()和setFlags()方法,避免了自动隐藏问题,是更推荐的实现方式。两种方法都支持对主窗口或主控件进行置顶/取消置顶操作,代码简洁,直接调用Qt原生接口即可实现功能。

2025-06-28 13:24:02 463

原创 浅谈锁机制(C++、Qt)

摘要:本文介绍了C++多线程编程中的锁机制,包括锁的基本概念、分类和使用方法。主要内容涵盖:(1)锁机制概述,解释互斥性与同步性,并区分悲观锁和乐观锁;(2)具体锁类型详解,包括互斥锁(std::mutex)、递归互斥锁(std::recursive_mutex)、定时互斥锁(std::timed_mutex)及其递归版本;(3)读写锁(std::shared_mutex)的使用场景与实现方式。文章强调要根据实际需求选择合适的锁类型,并注意锁粒度、性能优化和避免死锁等问题。所有锁机制都通过具体代码示例展示其

2025-06-27 13:50:10 839

原创 Python之一文入门NumPy

本文回顾了Python数据分析的基础工具NumPy,重点介绍了NumPy数组的创建方法和属性。NumPy是Python数据分析的核心库,提供多维数组对象和矩阵运算功能。文章详细讲解了使用array()、arange()、linspace()等函数创建数组的方法,以及zeros()、ones()等自动填充函数的使用。此外还介绍了随机数组生成和单位矩阵创建,并总结了数组的常用属性如shape、size、dtype等。这些内容是使用Python进行数据分析和科学计算的基础知识。

2025-06-27 13:49:04 1306

原创 跨线程connect传参的错误

在跨线程使用Qt的信号槽机制时,若传递自定义类型如QMap<int, QString>会出现序列化错误。解决方法是在连接前调用qRegisterMetaType()将该类型注册为元数据类型。注册格式为qRegisterMetaType<QMap<int, QString>>("QMap<int, QString>");,确保Qt能正确处理跨线程参数传递。若不注册可能导致信号无法触发槽函数。此问题仅出现在跨线程通信中,同线程传递自定义类型无需

2025-06-26 00:16:38 187

原创 各QJson类型之间及与QString的相互转换

本文总结了Qt中四种QJson类型(QJsonObject、QJsonArray、QJsonValue、QJsonDocument)之间的相互转换方法。重点介绍了每种类型到其他类型的转换方式,包括直接构造函数转换、使用封装方法转换等。同时说明了QJsonValue作为中间类型可转换为基本数据类型(字符串、数字、布尔值),以及QJsonDocument作为包装类型在转换中的桥梁作用。文章还提供了JSON格式示例和类型判断方法,帮助开发者更高效地处理JSON数据。

2025-06-26 00:15:07 627

原创 细谈QT信号与槽机制

信号与槽机制可以理解为QT中的一种通信手段,在运行相关代码前,分别声明信号和槽,再利用connect()方法将信号和对应的槽连接起来,之后再需要的地方使用emit触发信号,那么就可以让槽响应。其中,槽可以是特定的槽函数,也可以是其他各种普通函数;信号是一种特定对象,其结构类似函数,也可以像函数那样带有参数,将值通过参数传递槽函数,便于槽函数处理变量,如果使用参数,则信号和槽的参数要保持一致。

2025-06-25 10:02:57 1038

原创 关于vtkSmartPointer和vtkNew

本文探讨了VTK中vtkSmartPointer和vtkNew智能指针的区别与使用场景。作者通过一个典型错误案例(将vtkNew对象传递给vtkSmartPointer参数导致的编译错误)引出主题,分析了两者在语法形式、内存管理机制上的差异。vtkSmartPointer适用于需要对象共享的场景(如全局变量或函数参数传递),而vtkNew更适合局部作用域的独立对象。文章建议开发者根据实际需求合理选择智能指针类型,避免混用导致的编译错误,并提供了正确的使用示例代码。

2025-06-25 09:59:12 259

原创 vtkPolyData序列化

本文介绍了两种vtkPolyData序列化方法:1) 使用vtk内置的XML/JSON格式转换工具(vtkXMLPolyDataWriter/Reader),通过文件格式转换实现序列化;2) 针对大数据场景提出原生内存拷贝方案,直接操作底层数据指针实现高效序列化。后者通过拆分点坐标和颜色数据,采用memcpy内存复制方式,避免了格式转换的开销,显著提升性能。两种方法各有特点,前者简单易用,后者更高效但需手动管理数据类型和内存布局。

2025-06-23 17:12:55 649

原创 C++优化程序的Tips

本文分享了5个C++程序优化技巧:1)避免过多中间变量,统一管理同类变量;2)复杂处理时使用引用传参而非返回值,减少内存拷贝;3)习惯使用const修饰变量和参数,提高安全性和可读性;4)指针变量在使用时才分配内存,避免不必要的内存占用;5)减少函数调用次数,考虑使用内联函数或全局常量。这些技巧有助于提高代码运行效率,同时平衡可读性和性能。文中通过代码示例展示了各项技巧的具体应用场景。

2025-06-23 17:11:31 402

原创 正则表达式与C++

正则表达式(Regular Expressions,简称 regex)是用于匹配文本模式的一种特殊字符序列,其可以用一系列字符来表示出不同文本的对应模式。正则表达式的应用范围十分广泛,包括验证文本格式、判断字符种类、解析文本信息、转换目标文本、遍历搜索文本、符号化文本等。一般在文件搜索、浏览器搜索时都可以使用正则表达式来表达某一种想要的文本格式,在C++等编程语言中也是一样,灵活正当地使用正则表达式可以很有效地提高代码的可读性和简洁性。ECMAScript:基于ECMAScript标准的语法。

2025-06-21 20:10:02 1069

原创 C++ Lambda表达式

C++11 Lambda表达式简明指南 摘要:Lambda表达式是C++11引入的匿名函数特性,提供简洁的函数定义方式。其基本语法为捕获列表 mutable -> 返回类型 {函数体},其中参数列表和返回类型可省略。捕获列表支持值捕获[=]或引用捕获[&],也可指定变量。Lambda常用于作临时函数、算法参数、回调函数及QT信号槽连接,能显著提升代码简洁性和可读性。通过合理使用捕获机制,Lambda表达式可以灵活访问外部变量,实现高效的嵌入式函数功能。(149字)

2025-06-21 20:07:05 320

原创 【转载翻译】Open3D和PCL的一些比较

本人在逛Github时,发现一个解答Open3D和PCL对比的小文章,还挺有参考价值的原文:https://github.com/LaplaceKorea/investigate_open3d_vs_pcl/blob/main/README.rst#whats-the-support-for-gpus-look-like-in-open3d-and-pcl要注意的是这篇文章写在三年前,很多内容已经过时,注意辨别,文章使用的一些方法可以参考使用,自行验证最新的Open3D和PCL两者之间的情况。

2025-04-14 19:25:31 759

原创 QT中多线程写法

与QtConcurrent::mapped()功能类似,在QtConcurrent::mapped()基础上增加了一个reduceFunc函数,这个方法不再返回返回值构成的新容器,而是利用reduceFunc函数将获取到的返回值进行处理。创建目标类对象后为其创建一个对应的QThread对象,利用信号和槽的机制,将类的执行与线程的触发连接起来,就可以利用开启线程来开始任务的执行。注意,moveToThread的对象可以是QObject等,但不能是GUI相关的,如QWidget等。强制终止线程的执行。

2025-04-14 19:23:41 1126

原创 VTK使用Render()渲染窗口的相关问题

在对vtkGenericOpenGLRenderWindow对象使用Render()渲染更新时,会导致程序奔溃;或使用其他对象使用Render()渲染更新时奔溃;有些情况也可能有出现错误提示。:暂时没有找到根本原因和正确的解决办法,疑似在多处进行更新时会让窗口对象处理奔溃,那么在渲染更新前使用。:这些时候需要保证对象的创建使用与之后的Render()在同一线程下使用,不能跨线程。:在对窗口内的数据进行更新后,VTK窗口不会立即更新,需要鼠标等交互后才会更新。:对数据更新后,对VTK窗口也要使用。

2025-04-12 20:39:43 425

原创 三维点云投影二维图像的原理及实现

三维点云模型是由深度相机采集深度信息和RGB信息进行生成的,深度相机能直接获取到深度图和二维RGB图像,也就是说利用相机原本的关系就可以把深度信息投影回二维图像,即把点云中每个点投影到二维的正确位置,再把原本每个点的RGB颜色信息保留,涂抹到二维的对应位置,就实现了三维点云模型向二维图像的投影。首先获取相机的相关参数,再利用参数的变换关系把点云一一映射为图像的像素。

2025-04-12 20:38:48 1792

原创 解决vcpkg使用VS2022报错问题

在搜寻vcpkg的github issues后,得到了一些可行的解决办法原链接:https://github.com/microsoft/vcpkg/issues/22074。

2025-04-11 19:43:41 718

原创 【转载翻译】使用Open3D和Python进行点云处理

Open3D 的作用:Open3D 是 3D 数据处理的重要库,支持 C++ 和 Python,可实现复杂的 3D 数据操作。它支持从 3D 计算机视觉到 AR-VR 和机器人等一系列应用。3D 形状表示:本文介绍了光栅化和几何形式作为 3D 形状表示的两种主要方法。光栅化形式包括多视图图像和体积数据,而几何形式则涵盖多边形网格和点云。点云基础知识:点云是一种简单但信息丰富的表面表示形式,对于环境测绘和物体识别等任务至关重要。本文介绍了点云的数学定义及其在计算机视觉和机器人技术中的重要性。

2025-04-11 19:41:13 1170

原创 C++风格的强制类型转换

一般常用的是C语言风格的强制类型转换,这种转换虽然简便,但很是粗糙,无法区分各种细致的转换(比如父类与基类之间的转换,const和非const之间的转换等),并且可能会带来一些难以察觉的问题。C++为此推出了四种强制类型转换(const_cast),但很少有人会使用它们,甚至对此知之甚少。

2024-10-04 01:10:02 721

原创 Open3D实现点云数据的序列化与网络传输

根据需要对点云进行有损压缩、序列化、根据需要进行无损压缩、网络传输

2024-10-04 01:07:09 1631

原创 【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ

消息队列是异步服务到服务通信的一种形式。它们对于增强系统的可扩展性、可靠性和可维护性非常重要。异步通信:允许系统的不同部分进行通信,而无需立即响应,从而更有效地使用资源。服务解耦:使服务能够独立运行,降低系统的复杂度,增强可维护性和可扩展性。负载均衡:将消息均匀分布在不同的服务或工作线程之间,有助于管理工作负载并提高系统性能。有序保留:某些消息队列可以确保消息按照发送顺序进行处理,这对于特定应用程序至关重要。可扩展性:通过添加更多使用者或资源来处理增加的消息流,从而促进应用程序的轻松扩展。

2024-10-03 01:47:51 1554 1

原创 点云下采样有损压缩

点云下采样是通过一定规则对原点云数据进行再采样,减少点云个数,降低点云稀疏程度,减小点云数据大小。

2024-10-03 01:44:42 225

原创 Qt Creator仿Visual Studio黑色主题

转自本人博客:Qt Creator仿Visual Studio黑色主题1.演示配置文件和步骤在后面,先看成品,分别是QWidget和QML的代码编写界面:2. 主题配置文件下载链接:QtCreator _theme_VS_dark.xml也可以自己新建一个xml文件,然后把内容复制进去,内容放在文件末尾附录了。3. Qt Creator配置步骤进入配置首选项在文本编辑器的主题处导入我们的xml文件 QtCreator _theme_VS_dark.xml,个人建议把字体设置

2024-07-10 00:08:54 1777

原创 点云下采样有损压缩

点云下采样是通过一定规则对原点云数据进行再采样,减少点云个数,降低点云稀疏程度,减小点云数据大小。

2024-07-10 00:07:00 359

原创 Win脚本开机自启ALIst和RClone

在配置完alist和rclone之后,就只需要每次开机启动两者就行了,所以感觉使用AListHelper没有必要,于是我就想写一个vbs脚本放到shell:startup的启动目录即可。打开启动文件夹,创建脚本的快捷方式,把快捷方式移动到启动文件夹即可让其开机时自启动。启动文件夹不允许直接放脚本。在中意的地方新建文本,起一个中意的名字,改后缀为.vbs。复制下列代码,需要将【…】替换成自己的情况,不要【】

2024-06-28 18:45:24 2670

原创 RClone挂载有阿里云的AList

RClone挂载一般的AList可以直接使用mount命令,但是阿里云需要使用指定头部。,只要你的ALIst包含阿里云都需要加上这个头部参数。

2024-06-28 18:44:35 1291

原创 【转载翻译】谈谈Nanomsg与可扩展性协议(为什么ZeroMQ不应该是你的首选)

本文转载自本人博客:https://www.jjy2023.cn/2024/06/10/%e3%80%90%e8%bd%ac%e8%bd%bd%e3%80%91%e8%b0%88%e8%b0%88nanomsg%e4%b8%8e%e5%8f%af%e6%89%a9%e5%b1%95%e6%80%a7%e5%8d%8f%e8%ae%ae/本文由Tyler Treat发布于2014年6月29日,很早了,很多内容已经过时,注意辨别本月早些时候,我。

2024-06-27 23:47:06 1318

原创 ZeroMQ和NanoMSG的选择/对比

转载自本人博客:https://www.jjy2023.cn/2024/06/10/zeromq%e5%92%8cnanomsg%e7%9a%84%e9%80%89%e6%8b%a9-%e5%af%b9%e6%af%94/以前一直在使用ZeroMQ库处理通信,但因为最近需要做一个一对多的双向实时通信,ZeroMQ提供的几种通信模式就难以很好地实现,于是就去寻找其他的库,比如NanoMsg库。在我实际使用中,这两个库有着很大不同,下面我列出几点我使用时最注意的几点,之后如有新的理解再更新。

2024-06-27 23:45:44 1103

原创 一文入门Nanomsg通信库

详细介绍了Nanomsg通信库,一文便可入门

2024-06-27 23:44:35 4266 1

原创 ubuntu开启关闭GUI及性能变化

转载自个人博客:https://www.jjy2023.cn/2024/05/23/ubuntu%e5%bc%80%e5%90%af%e5%85%b3%e9%97%adgui%e5%8f%8a%e6%80%a7%e8%83%bd%e5%8f%98%e5%8c%96/最近在使用阿里云服务器的时候,试了试ubuntu的图形界面。

2024-06-09 12:55:37 1101

原创 AList搭建与使用(Win、Linux云服务器)

转载自个人博客:https://www.jjy2023.cn/2024/06/02/alist%e6%90%ad%e5%bb%ba%e4%b8%8e%e4%bd%bf%e7%94%a8/AList是一个支持多种存储的文件列表程序,简单来讲就是把各种存储(各种网盘、自建NAS、本地存储等)统一挂载到云端,实现在云端统一使用、管理、分享多个存储,自定义程度高。我在云服务器上搭建了AList,来管理阿里云盘、百度网盘和天翼云盘。

2024-06-09 12:52:14 11970 4

原创 C到C++快速过渡

是一个用户定义类型,表示字符串(两种定义方法)用成员访问运算符点 . 访问string类的成员用运算符对string对象进行运算,如+、[]+号进行字符串的拼接[]号类似于数组,对字符串进行取值。

2023-03-15 10:52:25 415

原创 Pandas基础

超详细的Pandas知识点总结,一篇让你学会Pandas

2021-11-25 11:52:21 1798

原创 NumPy基础

NumPy基础入门

2021-11-03 00:46:26 875

空空如也

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

TA关注的人

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