- 博客(329)
- 资源 (27)
- 问答 (3)
- 收藏
- 关注
原创 Qt:信号槽中使用智能指针std::shared_ptr
一般编程情况下信号槽都直接使用指针,但是因为野指针或内存泄漏情况,在这里我使用c++标准库的智能指针std::shared_ptr,这样避免野指针和内存泄漏。因为网上也有类似博文介绍如何解决,但是我试了都不行,在这里我将自己的处理方式进行记录和介绍。传递的数据使用std::shared_ptr包装,信号槽还是原始指针。
2025-01-16 08:21:24
146
转载 c++:=delete使用
引入的=delete是一种特性,它用于明确禁用或删除类的成员函数、特殊成员函数、或者其他成员函数。=delete的主要目的是在编译时捕获潜在的错误,并提供更精确的控制,以确保类的行为符合设计要求。
2024-12-30 10:00:36
63
转载 c++: =default使用
default是C++11引入的一种特性,它允许显式要求编译器生成默认的特殊成员函数。特殊成员函数包括默认构造函数、复制构造函数、移动构造函数、复制赋值运算符、移动赋值运算符以及析构函数。在默认情况下,如果你没有显式提供这些特殊成员函数的定义,C++编译器会自动生成它们。在这个示例中,MyClass类中同时定义了一个默认构造函数和一个自定义构造函数。MyClass()构造函数使用了=default来指定,所以编译器会自动生成它,而构造函数是程序员自己定义的。可以看到 ,在main。
2024-12-30 08:32:42
72
原创 IDEA下加载音频文件操作
音频文件在IDEA的工程中应在资源文件夹(resource文件夹)下。资源文件夹与代码文件夹(java文件夹)平级。其中,一是代码文件夹,二是资源文件夹,三是字符串描述从资源文件夹下定位的音频文件(注意从资源文件夹下一级开始)。通过AudioClip类播放音频文件。
2024-12-15 13:56:48
468
原创 QXlsx使用注意事项
QXlsx是一个可以读写Excel文件的库。不依赖office以及wps组件,可以在Qt5支持的任何平台上使用;Worksheet是Excel中的sheet,注意其中的row/colum。n(行/列)索引,起始索引是1,不是0。
2024-12-11 19:42:49
194
原创 使用Clion debugger断点,数据显示为16进制问题的解决方案
RT,在使用debugger跟进断点时,显示的数据为16进制。无法简明有效的观察程序运行情况。
2024-12-11 11:00:41
197
转载 善用shared_ptr,远离内存泄漏(转载)
试想一下,sp1指向对象obj1,sp2指向对象obj2,那么赋值之后,sp1也会指向obj2,那就是说指向obj1的就少了,指向obj2的就会多,如果此时没有其他shared_ptr指向obj1,那么obj1将会销毁。这样会导致两个shared_ptr管理同一个对象,当其中一个被销毁时,其管理的对象会被销毁,而另外一个销毁时,对象会二次销毁,然而实际上,对象已经不在了,最终造成严重后果。》中说到,如果有可能就使用unique_ptr,然后很多时候对象是需要共享的,因此shared_ptr也就会用得很多。
2024-12-02 15:00:03
46
原创 C++新特性汇总:
属性:这个属性用于在switch语句中。通常,当switch语句的一个case执行完毕后,会自动跳转到switch语句的末尾,除非存在break语句。如果你想要故意从一个case“落入”(fall through)到下一个case,可以使用属性来告诉编译器这是故意的行为,以避免编译器发出警告。属性:这个属性可以用于函数或者返回类型。它的作用是告诉编译器:调用这个函数时,它的返回值不应被忽略。如果程序员调用了这样的函数但没有使用它的返回值,编译器会发出警告。这对于那些返回重要状态或错误码的函数特别有用。
2024-12-02 11:01:39
435
转载 c++中的初始化
序号形式拷贝/直接初始化可用于构造函数初始值列表可用于类内初始值备注1等号拷贝初始化❌✅2等号+花括号={}拷贝初始化❌✅列表初始化3花括号{}直接初始化✅✅推荐!列表初始化,能用于各种初始化场景!4圆括号()直接初始化✅❌存在 Most Vexing Parse 问题、不可用于类内初始值及提供多个初始元素值的列表拷贝初始化:使用形式的初始化。直接初始化:不使用形式的初始化(使用{}或()形式初始化)列表初始化:使用{}
2024-11-24 18:10:44
56
原创 Java:消息队列传递参数
消息队列(Message Queue)是一种实现进程间通信的机制,通过消息的发送和接收实现解耦、削峰和异步处理等功能。消息队列在分布式系统中非常重要,常见的消息队列中间件有RabbitMQ、Kafka和ActiveMQ等。本文在Java中实现一个简单的消息队列,展示基本的使用方法。
2024-11-18 09:06:39
814
原创 Java 获取多线程返回值的几种方式
一 在主线程使用Thread.join方法,主线程会等调用了join的子线程执行完后再执行。二 使用Callable接口和Future接口。
2024-11-10 14:03:59
300
转载 Java函数式编程(一)–Function的使用
Java函数式编程(一)–Function的使用在函数式编程中,我们用的最多的往往是Function接口.通常来说,我们很少会直接使用这个接口,但是在Java的函数式编程中,许多组件都会与这个接口有关.需要注意的是,很多人会混淆Java8中新增的Stream API与函数式编程的概念,事实上,Stream API是一种为了实现自动化并行的惰性求值的解决方法,与函数式没有太大关系,但是其与函数式编程结合会很好用.
2024-11-03 23:21:49
179
转载 (转载)Java枚举:小小enum,优雅而干净
除了 EnumSet,还有 EnumMap,是一个专门针对枚举类型的 Map 接口的实现类,它可以将枚举常量作为键来使用。“如果枚举中需要包含更多信息的话,可以为其添加一些字段,比如下面示例中的 name,此时需要为枚举添加一个带参的构造方法,这样就可以在定义枚举时添加对应的名称了。由于枚举是 final 的,所以可以确保在 Java 虚拟机中仅有一个常量对象,基于这个原因,我们可以使用“==”运算符来比较两个枚举是否相等,参照。“确实,作为开发者,我们的代码量减少了,枚举看起来简洁明了。
2024-11-03 09:27:22
39
转载 飞行中的各种高度总结
前几天,本来想总结一遍关于导航仪表指示器的文章,结果在复习领航笔记的时候,被“高度”相关的知识点给“迷”住了,想了好久才重新梳理清楚,看来这是个时间久了就容易混淆的知识点,顺手来总结一下吧。我身高177,我站在地面上身高是177,站在东方明珠上,也许比地面高了几百米,但似乎对我来说没什么意义,谈及身高的时候,我参考的基准面永远是我脚踩的这块地。我比较喜欢在b站上写东西,所以回答的时候只放了一个链接上去,今天把文章搬到知乎来,因为感觉文字性的东西,还是知乎看的人比较多,大家可以一起讨论。
2024-10-19 09:48:05
721
原创 飞行高度测量与 QNE、QNH、QFE
标准气压高度,是指飞行中飞机相对于标准气压面的垂直距离。空中的飞机,如果按各自选择不同基准面飞行,有可能在两机相近或交会时发生相撞事故。为此,规定在航线和转场飞行时,统一以101325Pa气压面为基准,并以此来调整飞机间的垂直间隔,实行空中交通管制,保证飞行安全。采用标准气压高度来划分高度层。
2024-10-19 09:36:41
983
转载 飞机的导航能力:PBN、RNAV和RNP
关于PBN、RNAV和RNP,我认为最难区分的是PBN和RNP,翻译过来太像了。看了很多文章,感觉不是很尽兴,于是,根据自己的理解结合规章规范总结了一下,希望能用直白的语言把它说明,破除行业专业术语屏蔽。理解不当之处,请大家指出。
2024-10-18 09:16:38
748
原创 Java:IDEA生成JavaDoc文档
第三步:区域设置,决定文档的语言,简体中文就是zh_CN、繁体(台湾)zh_tw、繁体(香港)zh-hk、英语(香港)en-hk、英语(美国)en-us、英语(英国)en-gb、英语(全球)en-ww。第四步:其他命令行参数:如果区域设置为中国,参数一般为-encoding UTF-8 -charset UTF-8。有些开源项目并未直接提供api,但是通过从github、gitee下载项目可以手动生成Java文档。第一步:选择生成JavaDoc文档的范围,我只对一个源文件生成Doc,所以选择文件。
2024-10-15 15:54:22
497
原创 JavaFX:加载图片方法
Objects.requireNonNull方法说明:Checks that the specified object reference is not。Image实例需要传入参数String类型或InputStream类型。需要将URL类型转换为String类型。将图片保存在资源文件夹的image文件夹下。所以使用toString方法进行转换。maven框架下加载图片。
2024-10-12 19:26:48
317
转载 Java:性能篇,解密Stream,提升集合遍历效率的秘诀!
在开始深入讨论之前,我们先来了解一下什么是 Stream。Stream 是 Java 8 中引入的一种新的抽象概念,用于处理数据序列。它为我们提供了一种更加便捷、高效的方式来操作集合数据,实现了函数式编程的特性。在之前的 Java 版本中,我们通常使用迭代器或者循环来处理集合,代码显得冗长且难以阅读。而引入 Stream 后,我们可以采用声明式的方式描述数据的处理流程,使代码更加简洁、清晰。Stream 的本质是一种数据流,它不是一种数据结构,因此不会改变原有的数据集合。
2024-10-11 17:10:33
114
转载 【JDK 11】关于 Java 模块系统(module),看这一篇就够了
如果把 Java 8 比作单体应用,那么引入模块系统之后,从 Java 9 开始,Java 就华丽的转身为微服务。模块系统,项目代号Jigsaw,最早于 2008 年 8 月提出(比 Martin Fowler提出微服务还早 6 年),2014 年跟随 Java 9 正式进入开发阶段,最终跟随 Java 9 发布于 2017 年 9 月。那么什么是模块系统?官方的定义是如图-1所示,模块的载体是 jar 文件,一个模块就是一个 jar 文件,但相比于传统的 jar 文件,模块的根目录下多了一个。
2024-10-08 20:41:14
1510
2
原创 cmakelist加载Qt模块
Qt编程中,cmakelist会自动添加Core,Gui,Widgets模块,有时需要添加新的Qt的模块。在命令find_package中添加要新增的模块,比如要增加对ui文件的处理。
2024-10-04 22:57:36
613
转载 使用CLion编写QT遇到的一些坑(找不到头文件,Build报错)
文件来组织和设置项目的,所以如果我们需要添加诸如Qt这样的第三方库或是改变编译行为,都只要修改。之后再重新Build可以有效解决问题。
2024-10-04 18:04:07
300
转载 QTableView + QStandardItemModel模式显示表格冻结列(模板)
在 QTableView、QListView 等控件中,QModelIndex 用来唯一标识模型中的一个元素,以便于获取和操作该元素的数据。在 QTableView 中,QStandardItem 作为数据模型中的基本元素,负责展示和编辑表格中的数据。1. 定位元素:通过 QModelIndex 可以获取到模型中指定位置的元素,例如获取第一行的第一个单元格的 QModelIndex。2. 访问数据:通过 QModelIndex 可以访问到模型中对应元素的数据,例如获取该元素的文本内容或图片资源。
2024-09-20 21:27:23
153
转载 Java Lambda 表达式
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。
2024-09-19 17:41:43
214
转载 现代 C++ 中的初始化
序号形式拷贝/直接初始化可用于构造函数初始值列表可用于类内初始值备注1等号拷贝初始化❌✅2等号+花括号={}拷贝初始化❌✅列表初始化3花括号{}直接初始化✅✅推荐!列表初始化,能用于各种初始化场景!4圆括号()直接初始化✅❌存在 Most Vexing Parse 问题、不可用于类内初始值及提供多个初始元素值的列表拷贝初始化:使用形式的初始化。直接初始化:不使用形式的初始化(使用{}或()形式初始化)列表初始化:使用{}
2024-09-18 08:35:22
277
原创 Windows系统下编译C++源码并调用
现在很多的C++库都以源码的形式在github网站开源,如果要使用,可以直接下载到本地,添加到工程中调用。也可以将源码编译为动态或静态库文件,然后将库文件添加到工程中。在这里我们将GoogleTest源码编译,然后加到工程中。
2024-09-10 15:13:08
959
原创 配置CMake
在cmd中输入“cmake”,如果配置正确,则会显示类似信息。点击网页上“Download”,选择所需版本下载。如题,需要下载CMake并配置。
2024-09-10 14:23:45
403
转载 CMake 保姆级教程(下)(未完待续)
如果项目很大,或者项目中有很多的源码目录,在通过CMake管理项目的时候如果只使用一个CMakeLists.txt,那么这个文件相对会比较复杂,有一种化繁为简的方式就是给每个源码目录都添加一个CMakeLists.txt文件(头文件目录不需要),这样每个文件都不会太复杂,而且更灵活,更容易维护。
2024-08-26 13:15:39
77
转载 CMake 保姆级教程(上)
在上面的例子中一共提供了5个源文件,假设这五个源文件需要反复被使用,每次都直接将它们的名字写出来确实是很麻烦,此时我们就需要定义一个变量,将文件名对应的字符串存储起来,在cmake里定义变量需要使用set。# SET 指令的语法是:# [] 中的参数为可选项, 如不需要可以不写VAR:变量名VALUE:变量值# 方式1: 各个源文件之间使用空格间隔# 方式2: 各个源文件之间使用分号;间隔div.c;main.c;mult.c;sub.c)
2024-08-25 16:27:06
412
QTableView + QStandardItemModel模式显示表格冻结列(模板) 示例动图
2024-09-20
Java并发编程实战 2nd
2018-10-19
Java高并发编程详解
2018-10-19
Java模式设计
2017-10-29
Expert_One-on-One_J2EE_Development_without_EJB中文版 part10
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part9
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part8
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part7
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part6
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part5
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part4
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part3
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part2
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版
2009-02-11
c#本质论(英文版)
2008-09-22
QtCreator创建工程后,添加新文件不显示的问题
2022-07-13
Pyside6:子线程运行的问题
2022-01-16
Model-View模型中如何如何选择显示部分数据
2021-10-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人