- 博客(82)
- 资源 (1)
- 收藏
- 关注
原创 WinForm 中 Lambda 表达式的原理及应用
本文详细介绍了Lambda表达式在WinForm开发中的核心原理和应用场景。Lambda作为匿名函数的简洁表示法,其编译后会生成委托或表达式树。文章从LINQ查询、事件处理、集合操作和跨线程调用等典型应用入手,剖析了底层机制,包括延迟执行、委托实例化和线程同步等原理。特别强调了闭包陷阱、内存管理和性能优化等注意事项,并提供了动态控件生成、数据绑定等高级应用示例。最后给出调试技巧和优化建议,指出合理使用Lambda可提升开发效率,但需注意内存影响和性能开销。文章全面解析了WinForm中Lambda的工作机制
2025-06-05 14:20:06
834
原创 编程笔记---问题小计
这是因为ProgressBar的value属性期望的是一个0到1之间的值,而model.progress的值通常是0到100之间的整数或浮点数。当使用model.progress / 100来设置value时,这样做的原因是为了将模型中的进度值转换为0到1的范围。这段代码创建了一个ProgressBar,其value属性设置为model.progress / 100,这意味着进度条的当前值将根据model.progress的值动态更新,并将其映射到0到1的范围内。
2025-06-05 10:06:03
318
原创 QML contentItem.height 和 implicitHeight 两种不同的高度属性
摘要 在 QML 中,implicitHeight 和 contentItem.height 分别用于不同场景的高度控制。implicitHeight 是组件根据内容自动计算的理想高度,适用于自适应布局(如 Column),但会被显式 height 覆盖。contentItem.height 则专用于 Control 派生类(如 ScrollView),表示内部容器的实际高度,影响滚动行为。两者的关键区别在于适用对象(通用 vs. 控件专用)和布局影响(建议 vs. 内部实际尺寸)。常见问题包括滚动失效或动
2025-06-05 09:51:25
278
原创 Vim 中设置插入模式下输入中文
本文介绍了在Vim中配置中文输入的方法。首先需要安装系统输入法(推荐IBus或Fcitx框架),然后通过fcitx.vim插件实现输入法自动切换。同时提供了手动切换方案和优化中文输入的Vim配置建议,包括编码设置和常见问题解决。最后通过步骤总结帮助用户快速完成配置,实现在Vim插入模式下流畅输入中文。
2025-05-28 23:28:14
668
原创 Linux C++ 开发基础命令指南
本文介绍了Linux环境下C++开发的基础工具链配置与使用指南。内容包括:1) GCC/G++编译器安装、版本管理和升级方法;2) C++标准库文档安装;3) Vim编辑器的基本使用和C++编程配置技巧;4) C++代码编译运行命令及常用选项;5) 实用开发技巧如调试、Makefile编写等。通过这些基础工具的掌握,开发者可以在Linux平台上高效进行C++开发工作,为后续使用更高级的开发工具奠定基础。
2025-05-28 22:55:55
353
原创 常用 Linux 命令---服务器开发和运维相关命令
本文总结了Linux服务器开发和运维中的常用命令,涵盖文件操作、系统监控、网络管理、性能分析等核心功能。文件操作包括ls、cd、rm等基础命令;系统监控涉及top、ps等进程管理工具;网络相关命令如ping、curl用于调试;性能分析工具包含vmstat、strace等;权限管理使用chmod、sudo等命令。还介绍了开发相关的gcc、gdb,以及文本处理工具grep、awk等实用技巧。这些命令组合使用可高效完成服务器管理和开发任务。
2025-05-28 22:47:43
881
原创 QML Loader 和 createObject() 动态创建组件实例
在 QML 中,Loader和都可以用于动态创建组件实例,但它们的适用场景和工作机制有显著区别。
2025-05-09 09:17:24
376
原创 QML Component+Loader+Binding 动态刷新数据
在 QML 中,ComponentLoader和Binding是三个关键元素,它们共同用于实现和。
2025-05-09 09:13:59
671
原创 QML 动态加载组件
在 QML 中, 和 是两个非常重要的元素,它们通常一起使用来实现动态加载和组件复用。下面我将详细解释它们的用法和区别: 是一个可以重复使用的 QML 元素定义,它本身不会直接创建实例,而是作为模板使用。使用方式与 Loader 一起使用:作为委托组件:内联定义:特点不会立即实例化可以包含任意 QML 元素可以有自己的逻辑和属性2. Loader(加载器)基本概念 用于动态加载和实例化 QML 组件。关键属性属性说明要加载的 QML 文
2025-05-07 14:01:15
813
原创 QML ProgressBar控件详解
是一个常用的进度条控件,用于显示任务的完成进度。以下是 ProgressBar。,包括基本用法、自定义样式、动态绑定数据等。如果数据来自 C++(如。
2025-05-06 13:47:37
394
原创 c++ 二级指针 vs 指针引用
特性二级指针指针引用语法复杂度高(需要&和*操作)低(直接使用)可读性较低较高空值安全性需要检查nullptr不能绑定到nullptr重新绑定可以修改指向的指针不能重新绑定C兼容性兼容C仅C++模板元编程适用性更灵活有时受限编译器优化可能多一层间接寻址可能更易优化指针引用更简洁的语法更好的类型安全性更清晰的代码表达力二级指针与C的兼容性处理nullptr的能力更底层的控制在实际开发中,纯C++项目应优先使用指针引用,而在需要与C交互或特殊情况下使用二级指针。
2025-05-03 19:07:23
490
原创 c++ 指针参数传递的深层原理
指针参数传递的是指针值的拷贝(地址值的副本)通过副本指针可以修改原始数据(因为地址相同)修改副本指针本身(改变它存储的地址)不影响原始指针要修改指针本身需要传递指针的指针或指针的引用这是C/C++函数参数"值传递"特性的直接结果理解这一机制对于正确使用指针和避免内存错误至关重要。
2025-05-03 18:53:05
381
原创 在c++中,char定义的变量取地址时,为什么会输出 “烫烫烫...“?
后面的内存内容是未初始化的(可能是垃圾值),所以会输出乱码(如 “烫烫烫…有特殊处理,会把它当作字符串的起始地址,并尝试打印直到。结尾的字符数组),而不是内存地址。只是一个字节,后面的内存可能是随机数据,导致乱码。就不会把它当作字符串,而是直接输出指针的地址值。这样可以避免乱码,正确显示变量的内存地址。,而不是把它当作字符串,你需要将。的地址开始读取内存,直到遇到。在 C++ 中,当你直接输出。
2025-05-03 10:51:51
182
原创 C# 的 字符串插值($) 和 逐字字符串(@) 功能
功能,并在 SQL 语句中动态拼接变量。这样既保持了 SQL 语句的可读性,又能动态插入变量。符号,允许在字符串中直接嵌入表达式(用。这样可以有效防止 SQL 注入攻击。,用于动态生成 SQL 语句中的。虽然这种拼接方式方便,但存在。这段代码使用了 C# 的。用于动态插入变量值,如。在 SQL 语句中,
2025-04-21 15:48:46
578
原创 C# 运算符:?.(null 条件运算符)和 ??(null 合并运算符)
获取 comboBox1 当前选中的值,如果这个值为 null 或者获取过程出现问题,就返回空字符串而不是 null”。这种写法是一种防御性编程技巧,可以避免在后续代码中使用这个字符串时出现 NullReferenceException。(null 合并运算符)。(null 条件运算符)和。在 WinForms 中,
2025-04-21 15:31:54
237
原创 类、面向对象、UML类图
聚合关系(整体和部分的关系,整体析构了不会影响部分,空心菱形线)、组合关系(包含关系,整体析构会带着部分析构,实心菱形直线)、依赖关系(一个类作为另一个的参数,带箭头的虚线)【类和类之间的关系】继承关系(也叫泛化关系,空心三角的直线)、关联关系(一个类作为另一个类的成员变量,箭头线)、处理面向对象需要步骤:需要摘出来其中的对象,对象包含的属性、以及行为,创建这个类,类的实例就是对象。【类】 封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。
2025-04-07 17:44:07
230
原创 在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
特性Qt 版本兼容性兼容 Qt 5 和 6仅 Qt 6QML 模块使用使用原生Qt Widgets 支持默认启用不包含资源系统传统qrc文件支持 CMake 资源管理适用场景迁移项目/混合界面全新纯 QML 项目。
2025-03-30 18:03:47
528
原创 CMake 生成静态库、动态库
使用生成静态库(STATIC)或动态库(SHARED通过和设置库的输出目录。使用链接库文件到可执行文件。动态库可以设置版本号和导出符号(特别是在 Windows 下)。
2025-03-16 18:01:40
833
原创 CMake 保姆级教程
CMake 是一个跨平台的构建工具,用于生成适合不同平台和编译器的构建系统文件(如 Makefile 或 Visual Studio 项目文件)。在 Windows 下使用CMake构建项目时,CMake 会根据文件生成适合 Windows 的构建系统文件(如 Visual Studio 项目文件)。
2025-03-16 12:12:00
1603
原创 Linux基础---切换用户、创建用户、删除用户、添加和删除用户组、修改密码
Linux 是一个多用户的操作系统, 可以同时登录多个用户,因此需要在多个用户之间切换时,用户切换需要使用su或者su -。使用su 之切换用户;使用su -,不仅会切换用户也会切换工作目录。从用户A切换到用户B,如果还想再切换回用户A,可以直接使用exit。
2025-03-08 14:52:08
128
原创 Linux 基础---重定向命令(>、>>)、echo
关于重定向使用的最多就是输出重定向:修改输出数据的位置,通过重定向操作可以非常方便的进行文件的复制,或者文件内容的追加。
2025-03-08 14:29:22
330
原创 Linux下安装VS Code
在 CentOS 7 上安装 Visual Studio Code (VS Code) 时,你遇到的错误是因为 CentOS 7 的 glibc 版本较低,而 VS Code 的某些版本需要更高版本的 glibc(如 GLIBC_2.28),这是 CentOS 8 或更高版本才提供的。使用 Snap 安装 VS Code。适用于snap安装的vs。
2025-03-03 22:53:02
364
原创 Linux 基础---sudo权限 修改文件所属人、用户所属组
概念:让普通用户使用管理员权限执行一些操作(root)在命令前加上sudo 即可。
2025-03-03 21:52:07
234
原创 Linux 基础---文件权限
文件权限是针对文件所有者、文件所属组、其他人这三类人而言的,对应的操作是chmod。设置方式:文字设定法、数字设定法。
2025-03-03 21:42:53
247
原创 Linux 基础 创建软链接和硬链接
软链接:相当于Windows中的快捷键方式硬链接:相当于给文件起别名,并不会在磁盘上进行文件拷贝(和cp命令不同)
2025-03-02 15:26:57
126
原创 c++基础 struct和类
在 C++ 中,class和struct都是用于定义用户自定义数据类型的关键字,它们的主要功能是封装数据和行为。尽管它们在很多方面非常相似,但也有一些关键的区别。
2025-02-07 15:58:18
585
原创 c++基础 引用和指针
OOP 是一种编程范式,基于对象和类的概念。四大特性:封装:隐藏实现细节,提供接口。继承:从基类派生出新类,复用代码。多态:通过基类指针调用派生类的重写函数。抽象:定义接口而不实现具体细节。虚函数是在基类中使用virtual关键字声明的函数。允许派生类重写该函数,实现运行时多态。通过基类指针或引用调用虚函数时,实际调用的是派生类的实现。纯虚函数是在基类中声明但没有实现的虚函数,语法为。包含纯虚函数的类称为抽象类,不能实例化。派生类必须实现纯虚函数,否则派生类也是抽象类。
2025-02-07 11:22:34
708
原创 c++ 面试题
OOP 是一种编程范式,基于对象和类的概念。四大特性:封装:隐藏实现细节,提供接口。继承:从基类派生出新类,复用代码。多态:通过基类指针调用派生类的重写函数。抽象:定义接口而不实现具体细节。虚函数是在基类中使用virtual关键字声明的函数。允许派生类重写该函数,实现运行时多态。通过基类指针或引用调用虚函数时,实际调用的是派生类的实现。纯虚函数是在基类中声明但没有实现的虚函数,语法为。包含纯虚函数的类称为抽象类,不能实例化。派生类必须实现纯虚函数,否则派生类也是抽象类。
2025-02-06 11:27:01
1160
原创 C++基础 private、protected 和 public
访问修饰符类内部派生类类外部private✔️❌❌protected✔️✔️❌public✔️✔️✔️private:用于隐藏实现细节,确保数据安全。protected:用于在继承体系中共享数据或方法。public:用于定义类的接口,供外部使用。合理使用访问控制修饰符可以提高代码的安全性、可维护性和可扩展性。
2025-02-06 11:02:28
512
原创 C++基础 枚举、结构体和类
int y;int height;public:枚举:用于定义一组命名的整数常量,提高代码的可读性。结构体:用于将不同类型的数据组合在一起,通常用于表示简单的数据结构。类:用于封装数据和方法,通常用于表示更复杂的对象。根据具体的需求,你可以选择使用枚举、结构体或类来定义你的数据类型。
2025-02-06 10:38:51
161
原创 c++ 基础 计算机的内存和寻址机制
CPU通过地址总线访问内存中的指令和数据,RAM提供临时存储,ROM存储固件,Cache加速数据访问。这些部件协同工作,完成代码的加载、解码、执行和结果存储。
2025-02-05 14:05:07
1006
原创 网络协议详解---TCP、HTTP、WebSocket、socket、轮询等
五层网络结构:支持网络应用,提供进程间的通信服务。主要协议包括HTTP、FTP、SMTP等。:负责为应用程序进程提供端到端的通信服务。主要协议有TCP和UDP。:负责数据包的路由选择和传输。主要协议是IP。:负责将数据封装成帧并在物理网络上传输。主要设备包括交换机。:负责在物理媒体上传输比特流,定义物理设备的标准和接口。OSI七层网络结构:定义了用于在网络中进行通信和传输数据的接口;(Http协议位于该层):定义不同系统中数据的传输格式,编码和解码规范等;
2024-12-18 10:33:46
1663
原创 安装 mingw 工具 gcc、gdb、g++
链接: https://pan.baidu.com/s/1Pgw3INaiwUDDENhj5P1a3A?pwd=kqka 提取码: kqka。通过网盘分享的文件:msys2-x86_64-20241116.exe。–来自百度网盘超级会员v7的分享。
2024-11-23 13:02:02
295
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人