摘要:
Qt 的隐式共享 Qt 中很多数据类型(字符串 QString、字节数组 QByteArray、图片 QImage、容器类等)都涉及大量内存数据的复制。传统的“值拷贝”如果直接深拷贝,会导致性能开销非常大。 隐式共享技术结合了: 引用计数(Reference Counting) 写时复制(Copy- 阅读全文
posted @ 2025-06-25 23:29
_Sylvan
阅读(131)
评论(0)
推荐(0)
摘要:
条款1:模板类型推导 模板类型推导统一步骤:先忽略实参引用性,再根据形参模板形式不同决定是否保留 cv 限定和是否允许 T 推导成引用类型。 “忽略实参引用性”是所有模板类型推导的基础预处理规则。 四个要素 函数模板大致形如: template<typename T> void f(ParamTyp 阅读全文
posted @ 2025-06-25 12:56
_Sylvan
阅读(45)
评论(0)
推荐(0)
摘要:
QUiLoader 动态加载 ui 文件 在 Qt 中,QUiLoader 是一个用于在运行时动态加载 .ui 文件的类,属于模块 QtUiTools。相比于常规的 uic 工具将 .ui 编译为 .h/.cpp,QUiLoader 提供了更灵活的方式,例如用于插件化、换肤、动态模块加载等场景。 什 阅读全文
posted @ 2025-06-25 12:55
_Sylvan
阅读(214)
评论(0)
推荐(0)
摘要:
git switch git switch 是 Git 在 2.23 版本引入的新命令,目的是简化原本由 git checkout 承担的“分支切换”功能,使语义更清晰、更不容易误用。git switch 用于在不同分支之间切换,或创建并切换新分支。 相比 git checkout,它语义单一,只处 阅读全文
posted @ 2025-06-25 12:55
_Sylvan
阅读(86)
评论(0)
推荐(0)
摘要:
git stash git stash 是 Git 中非常实用但常被忽视的功能之一,常用于临时保存当前工作区和暂存区的改动,让你可以在不提交的情况下切换分支、处理其他任务,之后再恢复。 git stash 就像是一个“临时抽屉”,可以把未完成的修改(包括未提交的工作区和暂存区改动)先塞进去,等处理完 阅读全文
posted @ 2025-06-25 12:55
_Sylvan
阅读(62)
评论(0)
推荐(0)
摘要:
git revert git revert <commit> 的作用是:创建一个“反向提交”,撤销指定提交的更改,但保留原有历史。 它不会改写历史,而是在当前 HEAD 上追加一个反向修改的新提交,这是它与 git reset 最大的区别。 和 reset 的根本区别 命令 是否改写历史? 是否保留 阅读全文
posted @ 2025-06-25 12:54
_Sylvan
阅读(55)
评论(0)
推荐(0)
摘要:
git restore git restore 用于恢复工作区(和暂存区)中一个或多个文件的内容,撤销未提交的修改,恢复到某个提交或分支对应的版本。 主要用途 放弃对某个文件或目录在工作区的改动,恢复到指定提交版本。 放弃暂存区中的某个文件改动,恢复暂存区内容。 结合选项可以恢复到 HEAD、某个 阅读全文
posted @ 2025-06-25 12:54
_Sylvan
阅读(176)
评论(0)
推荐(0)
摘要:
git reset git reset 是 Git 中最强大也最容易误用的命令之一。它可以修改分支指针、重置暂存区、甚至擦除工作区的改动。 git reset 用于移动当前分支的 HEAD 到指定位置,并可选择是否同时修改 暂存区(Index) 和 工作区(Working Directory)。 基 阅读全文
posted @ 2025-06-25 12:54
_Sylvan
阅读(19)
评论(0)
推荐(0)
摘要:
git remote git remote 是 Git 中用于管理远程仓库连接(remote repository)*的命令。它本身不涉及具体的「上传」或「拉取」,而是*负责告诉本地仓库:有哪些远程仓库、它们叫什么名字、地址在哪儿。 git remote 是用来 管理远程仓库的名字与地址(URL)映 阅读全文
posted @ 2025-06-25 12:54
_Sylvan
阅读(77)
评论(0)
推荐(1)
摘要:
git merge git merge 用于将另一个分支的提交历史和修改内容合并到当前所在分支。 它实现的是将两条不同分支的开发历史融合成一条完整的提交记录链。 基本概念 当前分支:你现在检出的分支,是合并的目标分支。 合并分支:你想要合并进当前分支的那个分支。 合并的基本类型 快进合并(Fast- 阅读全文
posted @ 2025-06-25 12:53
_Sylvan
阅读(74)
评论(0)
推荐(0)
摘要:
git checkout git checkout 可以用来: 切换到某个分支或提交; 还原工作区/暂存区的文件内容到某个版本。 使用场景与语法大全 切换分支 git checkout branch-name 作用:将当前工作目录切换到指定分支。 会更新 .git/HEAD 为该分支名。 会刷新工作 阅读全文
posted @ 2025-06-25 12:53
_Sylvan
阅读(105)
评论(0)
推荐(0)
摘要:
git branch git branch 是 Git 中用于管理分支的一个核心命令。分支(branch) 是 Git 用来实现并行开发、隔离特性和版本控制的基本机制。可以把分支理解为项目历史的「时间线快照」,每个分支都是提交记录的一条路径。 核心概念 分支是什么? Git 中的分支本质上是一个指向 阅读全文
posted @ 2025-06-25 12:53
_Sylvan
阅读(43)
评论(0)
推荐(0)
摘要:
git rebase git rebase 的作用是:将当前分支的提交,重新“安置”在目标分支的末尾上,从而实现更清晰的提交历史。 它并不会简单地“移动分支指针”,而是会逐个复制提交,生成新的 commit ID。 原理图示 假设当前有这样的提交历史: A B C (main) \ D E (fea 阅读全文
posted @ 2025-06-25 12:52
_Sylvan
阅读(43)
评论(0)
推荐(0)
摘要:
git 常用命令 基础配置 命令 说明 git config --global user.name "Your Name" 设置用户名 git config --global user.email "your.email@example.com" 设置邮箱 git config --global c 阅读全文
posted @ 2025-06-25 12:52
_Sylvan
阅读(16)
评论(0)
推荐(0)
摘要:
C++ Pimpl Pimpl(Pointer to IMPLementation),也叫作编译防火墙,是一种在 C++ 中常用的设计技术,用于实现封装和降低编译依赖。 核心目标 隐藏实现细节:实现对类私有成员的完全封装。 减少编译依赖和耦合:避免修改内部实现后触发大规模重编译。 二进制兼容(ABI 阅读全文
posted @ 2025-06-25 12:51
_Sylvan
阅读(85)
评论(0)
推荐(0)
摘要:
Qt多线程简介 Qt 多线程编程是 Qt 框架中非常重要的一部分,适用于需要在后台处理耗时任务而不阻塞主线程(UI线程)的应用场景。 Qt 多线程的几种方式 方法 类名 场景 描述 方式一 QThread 子类化 学习演示 继承 QThread 并重写 run() 方法,手动启动线程 方式二 QOb 阅读全文
posted @ 2025-06-25 12:49
_Sylvan
阅读(72)
评论(0)
推荐(0)
摘要:
Qt UI构建流程 Qt 的 UI 构建流程可以分为两种方式: 使用 Qt Designer(.ui 文件)+ 自动生成代码 使用 C++ 代码手动构建 UI(纯代码方式) 使用 Qt Designer 构建 UI(推荐方式) Qt Designer 是什么?能做什么? Qt Designer 是 阅读全文
posted @ 2025-06-25 12:49
_Sylvan
阅读(368)
评论(0)
推荐(0)
摘要:
自定义信号和槽 信号链式传递 在 Qt 中,信号链式传递(Signal Chaining / Signal Relay)是指: 一个对象接收到信号后,在对应的槽函数中再次发出另一个信号,从而实现多个对象之间信号的逐级传递或响应链式处理。 这种模式可以让多个模块间解耦通信,适用于状态同步、事件广播、控 阅读全文
posted @ 2025-06-25 12:49
_Sylvan
阅读(43)
评论(0)
推荐(0)
摘要:
Qt_ui_headerlabel被覆盖问题总结 ProTreeWidget 类定义与实现(自定义 QTreeWidget) protreewidget.h #ifndef PROTREEWIDGET_H #define PROTREEWIDGET_H #include <QTreeWidget> 阅读全文
posted @ 2025-06-25 12:47
_Sylvan
阅读(18)
评论(0)
推荐(0)
摘要:
手动编译Qt项目 Qt 6.9.0 的 MinGW 64-bit 控制台环境里,默认会配置好环境变量,包含: moc uic rcc g++(MinGW 编译器) 直接打开 Qt 控制台(Qt 6.9.0 (MinGW 13.1.0 64-bit) Command Prompt),执行编译命令。 目 阅读全文
posted @ 2025-06-25 12:46
_Sylvan
阅读(140)
评论(0)
推荐(0)
摘要:
constexpr 关键字 constexpr 表示“编译期常量”,即表达式、变量或函数的值必须能在编译期被求出来。 用途总览 场景 示例 意义 修饰变量 constexpr int a = 5; a 是编译期常量 修饰函数 constexpr int add(int a, int b) 函数在编译 阅读全文
posted @ 2025-06-25 12:44
_Sylvan
阅读(57)
评论(0)
推荐(0)
摘要:
C++ 访问控制与继承 访问控制 C++ 提供三种访问控制修饰符,用于控制类成员(属性和方法)的可见性: 访问控制符 类内部 派生类 外部代码 public 可以 可以 可以 protected 可以 可以 不可以 private 可以 不可以 不可以 class Base { public: in 阅读全文
posted @ 2025-06-25 12:44
_Sylvan
阅读(21)
评论(0)
推荐(0)
摘要:
C++ invoke std::invoke 是 C++17 引入的一个工具函数,用来以统一的方式调用任意可调用对象(函数、函数指针、成员函数指针、函数对象、lambda 表达式等),它会自动处理调用方式的差异,提供一种「泛用式」调用接口。 基本语法 在模板编程中,可能会面对不同类型的可调用对象。 阅读全文
posted @ 2025-06-25 12:42
_Sylvan
阅读(122)
评论(0)
推荐(0)
摘要:
C++ bind std::bind 是 C++11 引入的一个函数适配器,用于创建一个可调用对象,提前绑定部分参数(也叫“占位绑定”或“柯里化”)。 它的本质是返回一个新的函数对象,这个对象封装了原函数+部分参数,等到调用时再传入剩余参数。 std::bind(可调用对象, 参数1, 参数2, . 阅读全文
posted @ 2025-06-25 12:42
_Sylvan
阅读(47)
评论(0)
推荐(0)
摘要:
C++ 完美转发 完美转发是指:函数模板接收到的参数在传递给其他函数时,保持其原本的“值类别”(即左值或右值)。 常用于泛型函数模板中,用于“转发参数给其他函数”时,避免复制或不必要的拷贝构造。 C++11 引入 std::forward 和 && 引用折叠来实现完美转发。 关键 使用万能引用: t 阅读全文
posted @ 2025-06-25 12:42
_Sylvan
阅读(61)
评论(0)
推荐(0)
摘要:
C++ allocator allocator 是 C++ 标准库定义的一个内存分配器模板类,位于 <memory> 头文件中。它负责为容器(如 std::vector, std::list 等)分配和释放内存,以及构造和析构对象。 简单来说,allocator 把“内存管理”和“对象构造/析构”工 阅读全文
posted @ 2025-06-25 12:38
_Sylvan
阅读(205)
评论(0)
推荐(0)
摘要:
C++ 拷贝控制双向关系维护 << C++ Primer>> 13.4 拷贝控制示例 背景 假设有: 多个消息(Message) 多个文件夹(Folder) 目标: Folder 需要知道它有哪些 Message Message 需要知道它属于哪些 Folder 这是为了让两个对象的关系保持一致,方 阅读全文
posted @ 2025-06-25 12:37
_Sylvan
阅读(11)
评论(0)
推荐(0)
摘要:
C++ 三五法则 三法则(Rule of Three) 如果一个类需要自己定义以下三个特殊成员函数中的任何一个,则通常也应该定义另外两个: 拷贝构造函数 ClassName(const ClassName&); 拷贝赋值运算符 ClassName& operator=(const ClassName 阅读全文
posted @ 2025-06-25 12:36
_Sylvan
阅读(80)
评论(0)
推荐(0)
摘要:
C++ 聚合类型 聚合类型(Aggregate Type)是 C++ 中一种非常特殊的类或结构体类型,它的设计目的就是为了像数组一样、像 C 语言结构体一样去初始化它 —— 不需要构造函数,不需要成员函数,所有成员按顺序初始化。这种类型在做 POD 类型、性能优化、序列化等低层场景非常有用。 定义 阅读全文
posted @ 2025-06-25 12:36
_Sylvan
阅读(89)
评论(0)
推荐(0)

浙公网安备 33010602011771号