自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 VS Code 中使用 Markdown 编辑器

6. 导出为 PDF/HTML 使用扩展: 安装 Markdown PDF 扩展后,右键文件 → Markdown PDF: Export (pdf/html/png)。emoji:输入 :emoji: 自动补全(如 :smile: → 😊)。8. 自定义样式 修改预览主题:在设置(Ctrl/Cmd + ,)中搜索 markdown.styles,添加自定义 CSS 文件路径。提示:部分快捷键可能与系统或扩展冲突,可在 键盘快捷方式(Ctrl/Cmd + K Ctrl + S)中自定义。

2025-08-24 18:41:08 163

原创 Windows 11 下 Qt C++ 使用 protoc-32.0-win64 完整流程

这个完整流程涵盖了在 Windows 11 下使用 Qt 和 Protocol Buffers 的所有方面,从环境配置到完整的图形界面应用程序。以下是专门针对 Windows 11 系统的详细步骤,包含环境配置、项目设置和常见问题解决。被复制到可执行文件同一目录。指向你的 Qt 安装路径。

2025-08-24 18:39:06 261

原创 Qt 中为应用程序设置图标

在 Qt 中为应用程序设置图标(包括窗口图标、任务栏图标和可执行文件图标)需要通过多个步骤实现。

2025-08-16 16:45:36 406

原创 Qt 中为应用程序设置任务栏图标

在 Qt 中为应用程序设置任务栏图标(Windows/macOS/Linux)可以通过多种方式实现。

2025-08-16 15:52:27 178

原创 关于 QLineEdit* file1Edit 是否需要手动释放

在 Qt 中,关于是否需要手动释放,取决于它的**父对象(parent)**设置和创建方式。

2025-08-16 15:02:44 227

原创 在Qt中仅保留绘制界面并取消调试控制台的方法

public:// 设置窗口属性protected:// 绘制自定义内容painter.drawText(rect(), Qt::AlignCenter, "纯图形界面应用");// 隐藏控制台(Windows)#endif。

2025-08-10 16:41:50 294

原创 ULONG_PTR 类型详解

ULONG_PTR// 32位系统下// 4字节 (32位)// 64位系统下// 8字节 (64位)

2025-08-09 15:31:30 272

原创 <unistd.h> 标准头文件详解

unistd.h>进程控制:创建和管理进程文件操作:低级 I/O 操作系统信息:获取系统和进程信息用户/组管理:用户身份相关操作目录操作:改变工作目录符号链接:符号链接处理定时操作:睡眠和暂停函数描述fork()创建新进程getpid()获取当前进程IDgetppid()获取父进程IDexec系列执行新程序_exit()立即终止进程setsid()创建新会话。

2025-08-09 15:17:20 333

原创 标准 C 库 <signal.h> 详解

用户按下中断键 (Ctrl+C)程序执行了非法操作子进程终止定时器到期其他进程请求通信。

2025-08-09 15:13:19 385

原创 Qt 中的 QStyleFactory 类详解

Q_OBJECTpublic:// 自定义绘制逻辑// 使用自定义样式。

2025-08-09 15:05:30 271

原创 Qt 中的 QStatusBar 类详解

/ 设置状态栏样式"}"}"

2025-08-08 15:33:41 221

原创 Qt 中的 QTextCodec 类详解

Qt 5QTextCodec是处理多编码文本的核心类Qt 6:默认移除了QTextCodec,推荐使用或模块最佳实践:新项目应优先使用UTF-8编码,减少编码转换需求兼容性:如果需要支持旧代码或多种编码,Qt 6中可添加模块随着Qt的发展,文本编码处理方式也在演进,建议新项目尽量遵循Qt 6的新范式,同时了解传统方法以便维护旧代码。

2025-08-08 15:29:28 379

原创 Qt 中的 QSharedMemory 类详解

是 Qt 提供的一个用于进程间通信(IPC)的类,它允许不同进程访问共享的内存区域。下面是关于 的全面介绍。 提供了一种在多个进程间共享内存的机制:写入数据到共享内存从共享内存读取数据4. 关键方法 方法 描述 设置共享内存的唯一标识 获取共享内存标识 创建指定大小的共享内存 附加到现有共享内存 从共享内存分离

2025-08-08 15:08:48 368

原创 Qt 自带的打包命令和工具

Qt 提供了一些内置工具和命令用于应用程序打包和部署,下面我将详细介绍主要的打包方法和相关命令。

2025-08-07 16:49:05 381

原创 使用Qt设计目录代码行数统计工具

下面我将设计一个完整的Qt应用程序,用于统计指定目录下所有代码文件的行数。这个工具将包含GUI界面,支持多种编程语言的代码统计。

2025-08-06 17:18:01 316

原创 Qt 中的 const 使用详解

在 Qt 开发中,const关键字的使用与标准 C++ 一致,但由于 Qt 的特殊架构和对象模型,有一些特定的应用场景和最佳实践。

2025-08-06 17:01:28 406

原创 Qt 中的静态成员变量

/ 定义并初始化静态成员变量Qt 中的静态成员变量遵循标准 C++ 规则在 QObject 派生类中使用静态成员时要注意 moc 的限制多线程环境下需要特别注意同步问题静态成员常用于实现单例模式、共享数据和工具类静态方法不能直接作为槽函数,但可以通过间接方式使用正确使用静态成员可以提高代码的组织性和效率,但过度使用可能导致代码耦合度增加,需谨慎权衡。

2025-08-06 16:54:09 157

原创 支持Markdown(MD)的网站推荐

以下是一些支持Markdown(MD)的网站推荐,涵盖文档托管、编辑器、简历制作、转换工具及学习资源等多个方向:

2025-08-06 16:24:24 869

原创 遇到 Q_OS_WIN 未定义的问题

这样的 Qt 平台宏,通常不需要手动定义它,因为它是由。如果有更具体的错误信息,可以提供以便进一步排查!如果是 CMake 项目,确保。中,如果你需要在代码中使用。如果 Qt 未自动定义。(极少数情况),可以在。(如 )自动提供的。

2025-08-06 16:23:06 214

原创 QEMU 详细介绍

*QEMU**(Quick Emulator)是一个开源的 **硬件虚拟化工具**,支持跨平台模拟多种 CPU 架构(如 ARM、x86、RISC-V 等),广泛用于开发、测试和运行不同架构的操作系统。| 桌面虚拟化 || **多架构支持** | 支持 ARM、x86、RISC-V、MIPS、PowerPC 等。| **全系统模拟** | 模拟完整的计算机(CPU、内存、外设),可运行未修改的操作系统(如 Linux、Windows ARM 版)。

2025-08-03 16:08:23 932

原创 OpenHarmony 能否在 Windows 上运行?

*不能直接运行**,但可以通过 **虚拟机(VM)** 或 **模拟器** 在 Windows 上体验 OpenHarmony。- **可能性低**,因为 OpenHarmony 的定位是 **物联网和嵌入式设备**,而不是替代 Windows/macOS。- 如果只是 **开发应用**,可以使用 **DevEco Studio**(Windows 版)进行跨平台开发。- **开发者** → 使用 **Docker** 或 **真实开发板**。

2025-08-03 16:00:13 367

原创 Qt 5.12 使用 C++14 特性

**如何启用 C++14** | 在 `.pro` 中添加 `CONFIG += c++14` 或 `QMAKE_CXXFLAGS += -std=c++14` || **支持的最高标准** | C++14(需手动启用,依赖编译器) |Qt 5.12 默认使用的是 **C++11** 标准,但部分特性可能支持 **C++14**(取决于编译器和配置)。#### **方法 1:检查 `qmake` 项目文件(.pro)**

2025-08-03 14:40:42 245

原创 C++20 协程(Coroutines)代码示例

协程特别适合 **异步I/O**、**生成器** 和 **状态机** 等场景。| **异步任务** | `co_return` + `co_await`| 简化 `std::future` 风格代码 || **手动调度** | `std::coroutine_handle` | 低级别协程控制 |std::this_thread::sleep_for(std::chrono::seconds(1));// 自定义挂起/恢复逻辑。

2025-08-03 14:28:30 344

原创 C++ 新特性

C++20 | 概念, 协程, `std::format` | 2020 || C++17 | 结构化绑定, `std::optional` | 2017 |std::cout << std::get<std::string>(v);requires std::integral<T> // 约束 T 必须是整数类型。### **C++ 新特性(C++11/14/17/20/23 主要更新)**

2025-08-03 14:24:55 403

原创 # `grep` 和 `awk` 命令详解

*黄金组合**:先用 `grep` 过滤出相关行,再用 `awk` 提取和处理特定字段。| `grep` | 快速搜索/过滤 | 日志分析、内容查找 || `awk` | 结构化数据处理 | 报表生成、数据转换 || `-v` | 反向匹配(显示不包含模式的行) || `-l` | 只显示包含匹配项的文件名 || `-A n` | 显示匹配行及其后n行 || `-B n` | 显示匹配行及其前n行 |# `grep` 和 `awk` 命令详解。| `-E` | 使用扩展正则表达式 |

2025-08-01 16:39:07 410

原创 sed介绍

(Stream Editor)是 Linux/Unix 系统中强大的文本处理工具,用于对输入流(文件或管道数据)进行基本的文本转换和过滤。它通过逐行扫描文件并执行指定的编辑命令(如替换、删除、插入等)来修改文本内容,支持正则表达式匹配,非常适合批量处理文本。可以高效完成复杂的文本处理任务。如需更复杂的操作,可结合。或脚本语言(如 Python)。通过灵活组合命令和正则表达式,时,可改用其他分隔符(如。

2025-08-01 16:36:26 311

原创 `.gn` 文件用法详解

5. **平台特定隔离**:使用 `if (target_os == ...)` 隔离平台相关配置。3. **提供默认值**:所有 `declare_args()` 参数应有合理默认值。- `BUILD.gn` 是**构建定义**文件,每个目录都可以有。- `.gn` 是**全局配置**文件,每个代码库只有一个。1. **保持简洁**:`.gn` 只应包含真正全局的配置。- `.gn` 在 `BUILD.gn` 之前被解析。2. **合理分组**:相关的构建参数放在一起声明。

2025-08-01 16:28:52 355

原创 BUILD.gn 语法全面指南

full_path = "$path/file.cc" # 结果为 "src/base/file.cc"| `current_os` | 当前操作系统(linux, win, mac等) || `current_cpu` | CPU架构(x86, x64, arm等) |":my_local_target", # 同一BUILD文件中的目标。| `root_build_dir` | 根构建目录 || `target_cpu` | 目标CPU架构 || `target_os` | 目标操作系统 |

2025-08-01 16:24:23 253

原创 Makefile 伪目标详解

3. **使用有意义的名称**:如 `clean`, `install`, `test` 等。4. **分组相关伪目标**:如将 `clean` 和 `distclean` 放在一起声明。5. **添加帮助信息**:使用 `help` 伪目标说明各个目标的用途。2. **将 `.PHONY` 声明放在文件开头**(变量定义之后)2. **总是执行**:无论同名文件是否存在,命令都会执行。1. **为所有不生成文件的目标声明 `.PHONY`**1. **不生成对应文件**:伪目标不对应任何实际文件。

2025-08-01 16:20:05 407

原创 Makefile 函数定义与使用示例

REVERSED := $(call reverse,$(NUMBERS)) # 结果为 5 4 3 2 1。) # 红色。1. **函数参数**:通过`$(1)`,`$(2)`等访问参数,最多支持10个参数。5. **调试技巧**:使用`$(info)`或`$(warning)`打印调试信息。3. **eval函数**:动态生成Make规则时必须使用`$(eval)`OBJS := $(SRCS:.c=.o) # 将.c替换为.o。2. **变量扩展**:使用`$$`转义函数体内的`$`

2025-08-01 15:59:38 298

原创 Qt 协程示例与实现指南

qDebug() << "协程开始" << QTime::currentTime();qDebug() << "再2秒后" << QTime::currentTime();qDebug() << "收到数据1长度:" << data1.size();qDebug() << "收到数据2长度:" << data2.size();qDebug() << "1秒后" << QTime::currentTime();qDebug() << "对话框关闭,结果:" << result;// 请求完成时恢复协程。

2025-07-31 18:04:15 499

原创 C++ 协程全面解析

通过`await_ready()`/`await_suspend()`/`await_resume()`控制。- 小协程可使用`std::noop_coroutine_promise`- **可挂起(suspend)**和**恢复(resume)**的执行流。1. **`std::generator`** - 标准库提供的生成器。- 调用`get_return_object()`获取返回值。- 遇到`co_await`/`co_yield`时暂停。- `co_await`:暂停协程执行,等待操作完成。

2025-07-31 18:00:33 455

原创 Qt 中使用 Protocol Buffers (`.proto`) 的完整指南

sensor.set_device_id(QtProtobufUtils::toStdString(tr("温度传感器")));│ └── sensor_model.h # 包装 protobuf 的 Qt 模型。│ └── protobuf_utils.h # Qt-protobuf 转换工具。# Qt 中使用 Protocol Buffers (`.proto`) 的完整指南。

2025-07-31 17:32:24 697

原创 C++ 中的 `.proto` 语法与使用指南

Protocol Buffers (protobuf) 是一种高效的序列化数据结构的工具,在 C++ 中使用需要先定义 `.proto` 文件,然后通过 protoc 编译器生成对应的 C++ 代码。// 重复字段(数组)// 命名空间,对应 C++ 中的命名空间。- 将生成的 `.pb.h` 和 `.pb.cc` 文件放在独立目录。// 设置name字段。// email字段未被设置(proto3中默认值)- `your_file.pb.cc` (实现文件)

2025-07-31 17:28:19 748

原创 c++的enum介绍

枚举是C++中用于定义命名常量集合的重要特性,经历了从C风格枚举到C++强类型枚举的演进。现代C++枚举提供了比C风格枚举更安全、更灵活的特性,是定义常量集合的首选方式。enum class Color { // 使用class或struct关键字。enum : unsigned char { // 指定底层类型。2. **作用域隔离**:枚举常量不会污染外层作用域。1. **优先使用`enum class`**2. **为业务逻辑相关的常量集合使用枚举**1. **强类型**:不会隐式转换为整数。

2025-07-31 16:50:03 288

原创 c++的override介绍

override` 是 C++11 引入的关键字,用于显式标识派生类中覆盖(重写)基类虚函数的成员函数。// 错误:没有匹配的基类虚函数可覆盖。void process() override { /* 实现处理逻辑 */ }void init() override { /* 定制初始化 */ }| `override` | 显式标记覆盖 | 派生类中覆盖基类虚函数 |virtual void init() {} // 可选步骤。| `virtual` | 声明虚函数 | 基类中首次声明虚函数 |

2025-07-31 16:47:26 393

原创 Qt多线程编程全面指南

4. **CPU亲和性**:QThread::setAffinity(特定平台支持)1. **避免直接继承QThread**(推荐使用moveToThread方式)1. **线程创建开销**:频繁创建销毁线程影响性能,使用线程池。- **QThread** - 线程类,提供线程管理功能。- **QWaitCondition** - 条件变量。- **QReadWriteLock** - 读写锁。- **QRunnable** - 可运行任务基类。- **QThreadPool** - 线程池管理。

2025-07-31 14:45:28 916

原创 # C++ 新特性全面解析(C++11 到 C++23)

**书籍**:《Effective Modern C++》《C++20 实践入门》std::weak_ptr<int> p3 = p2;- **提案追踪**:wg21.link (C++标准提案)- **编译器支持**:GCC/Clang 最新版。

2025-07-31 14:43:09 366

原创 Protobuf介绍

【代码】Protobuf介绍。

2025-07-31 14:40:46 293

原创 React 全面介绍

/ State 示例。- **Material-UI**:Google Material Design 实现。│ ├── hooks/ # 自定义 Hook。- **Context API**:React 内置的简单状态管理。│ ├── components/ # 可复用组件。│ ├── pages/ # 页面组件。│ ├── store/ # 状态管理。│ ├── utils/ # 工具函数。

2025-07-31 14:05:47 330

空空如也

空空如也

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

TA关注的人

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