喵个咪的博客喵个咪的博客
喵个咪的技术与生活
文章列表
文章分类
文章标签
时间线
喵个咪的技术与生活
文章列表
文章分类
文章标签
时间线
健康养生 1fastapi 1随笔日志 1产品设计 1ASIO 2cron 1rclone 1flutter 1RxDart 1Make 2CMake 2Ninja 1设计模式 2Cache Aside Pattern 1缓存设计模式 1汽车 1go 2CDC 1PostgreSQL 6Centos 1docker 1CLion 1云手机 1GoogleTest 1Cococs2dx 1Cocos Creator 1代码注释 1IDE 3Python 4TRC20 1C++ 8类型转换 1CQRS 1Kafka Streams 1Bazel 2Docker 21Go 6crontab 1客户留存率 1EFK 1RustDesk 1Jitsi Meet 1Traefik 1Swagger 1Docker Hub 1VIM 1Word 1VBA 1Doris 1量化交易 2Flutter 13Widget 1Ent 2SQL 2Excel 2配色 1TypeScript 3C# 1Sealed Class 2微信小程序 1人脸识别 2RK3588S 1Android Studio 1iOS 1GetX 1鸿蒙 1字体渲染 1期货 1Futures 1地理围栏 1GEO 1Git 2Golang 99Go-Kratos 86GoWind 41UBA 1算法 5WebRTC 2MongoDB 1Headless CMS 1WASM 1随机种子 1MacOS 3Ubuntu 2GCC 1Godot 1Clang 1Superset 1CentOS 1OpenCV 1咖啡 1Android 1Google Play 1Unity WebGL 1Dexie 1IndexedDB 1htop 1IM 1Postgresql 1Mattermost 1Qt 4TL;DR 1Swift 1Javascript 2JetBrains 1Typescript 1libuv 1Linux 1本地化 1国际化 1状态同步 1帧同步 1泡泡水 1Markdown 1机器学习 1QTT 1MQTT 2MSB 1LSB 1npm 1pnpm 1yarn 1OCR 1OHLC 1OLTP 1OLAP 1OpenAI 1OpenAPI 1数织 1Ping 1人体姿态识别 1全文搜索 1交叉表 1Prometheus 1Protobuf 2Docx 1QUIC 1Reactor 1Redis 1REST 1CoTURN 2RBAC 1Selenium 1基准测试 1Spine 1股票 1Roguelike 2ThingsBoard 3时间戳 1时序数据库 3交易所 1Unity 2用户画像 1PgBouncer 1Vite 1Vue 1WebGL 1加权随机 1BI 1数据血缘 1Roguelite 1Protocol 1WiFi 1WSL 3Windows 4
Qt 优雅实现线程安全单例模式(模板化 + 自动清理)

Date: 1/1/2020Category: C++编程Tag: C++, Qt

在 Qt 开发中,单例模式是高频使用的设计模式,用于全局共享一个实例(如配置管理、网络服务、日志系统等)。一个健壮的 Qt 单例需要满足 线程安全、自动清理、通用性强、支持任意构造参数 等核心需求。本文将基于模板封装 + 管理器的设计思路,实现一套可直接复用的单例框架,并详细讲解其设计原理与最佳实践。

一、单例模式的核心诉求

在 Qt 环境中,单例的设计需要解决以下关键问题:

  1. 线程安全: 多线程并发调用时避免创建多个实例;
  2. 自动清理: 程序退出时自动释放资源,避免内存泄漏(尤其配合 Qt 的 QCoreApplication::aboutToQuit 机制);
  3. 通用性: 支持任意类作为单例,无需重复编写单例逻辑;
  4. 灵活构造: 支持带参数的构造函数,且不丢失参数语义;
  5. 安全校验: 避免未初始化就调用实例的错误;
  6. 可手动控制: 支持主动初始化 / 销毁单例。
Qt6 QML 自定义 DateTimePicker 组件:完整实现与使用指南

Date: 1/1/2020Category: C++编程Tag: C++, Qt

在 Qt 开发中,原生的日期时间选择组件往往难以满足个性化的 UI 设计和交互需求(如深色主题、自定义时间范围、键盘导航等)。本文基于 Qt6.10 版本,从零实现一款功能完整、交互友好的 DateTimePicker 组件,支持日期 + 时间联动选择、时间范围限制、键盘 / 鼠标双交互、深色主题适配等特性,可直接集成到 QML 项目中。

一、组件核心特性

特性 说明
深色主题适配 内置统一的深色系样式常量,支持快速切换主题
完整时间维度选择 支持年、月、日、时、分、秒全维度选择,日历网格可视化展示
时间范围限制 通过 minDateTime/maxDateTime 限制可选时间范围,禁用超出范围的选项
双交互模式 支持鼠标点击 / 悬停、键盘方向键 / Tab/Enter/Escape 操作
智能视觉反馈 选中状态高亮、禁用状态灰显、悬停效果、焦点区域提示
快捷操作 内置「今天」快捷按钮,一键恢复当前系统时间
自动月份切换 点击非当前月日期时,自动切换到对应月份
Qt 6 实战:C++ 调用 QML 回调方法(异步场景完整实现)

Date: 1/1/2020Category: C++编程Tag: C++, Qt

在 Qt 6 开发中,C++ 与 QML 混合编程是常见场景。当 C++ 处理异步操作(如登录验证、网络请求、数据库查询)时,需要将结果通知给 QML 界面,回调函数是最直观的通信方式之一。本文将基于你提供的代码框架,补充关键细节、修复潜在问题,并完整实现从 C++ 调用 QML 回调的全流程。

一、核心场景说明

我们需要实现:

  1. QML 调用 C++ 的 login 方法(传入用户名、密码和两个回调函数:成功回调 onSuccess、失败回调 onFailure);
  2. C++ 异步处理登录逻辑(模拟耗时操作);
  3. 登录完成后,C++ 调用对应的 QML 回调函数,将结果(成功响应 / 错误信息)传递给 QML。
libuv实现定时器Timer

Date: 1/1/2020Category: C++编程Tag: C++, libuv
怎样把C++代码编译成WASM

Date: 1/1/2020Category: C++编程Tag: C++, WASM
C++ 类型转换:旧风格与四种新风格详解

Date: 1/1/2020Category: C++编程Tag: C++, 类型转换

在 C++ 编程中,类型转换是连接不同数据类型的重要手段。C++ 同时支持兼容 C 语言的旧风格强制转型,以及针对特定场景设计的四种新风格强制转型,后者在可读性、安全性和规范性上更具优势。本文将详细解析各类转换的语法、用途及核心差异。

一、旧风格(C-style)强制转型

C 风格强制转型包含两种语法形式,本质功能完全一致,仅括号位置不同:

  • 格式 1:(T) expression(将表达式转换为 T 类型)
  • 格式 2:T(expression)(函数式语法,效果同上)
C++ IDE:最适合 C++ 初学者的 IDE 是什么?

Date: 1/1/2020Category: C++编程Tag: C++, IDE

C++ 创建于 1985 年,是一种流行的编程语言,已经使用了 30 多年。这种面向对象的编程语言设计有多种功能设施,包括编译功能。它最初是为系统编程而构建的,但如今它已成为软件开发行业许多项目的绝佳选择。它可用于创建高性能应用程序,例如桌面应用程序、游戏和服务器。

C++ 作为 C 语言的扩展而构建,采用类进行设计,使其代码可重用。C++ 编程语言支持多种操作系统和集成开发环境 (IDE)。作为想要构建令人印象深刻的软件应用程序的初学者,您可能正在寻找 C++ 的最佳 IDE 来轻松构建和启动您的产品。使用本指南为初学者找到最好的 C++ IDE。

什么是 IDE?

关于C++嵌入Python引用protobuf引起的一个SIGSEGV错误的解决过程

Date: 1/1/2020Category: C++编程Tag: C++, Python

首先,我的应用场景是这样的,我是一个C++为宿主的程序,内嵌了Python,我C++里边有引用C++版的protobuf动态链接库。Python里边也有用到Python版的Protobuf。两者都用了同一版本的protobuf: 3.13.0。

因为我是插件式的系统,我单独测试Python脚本系统插件的时候,一切都是完美的。然后,我将插件集成到主程序里边去,就完犊子了。只要我在Python中import到protobuf的协议,主程序就会以SIGSEGV信号崩掉。

最终堆栈挂在了_message.cpython-35m-x86_64-linux-gnu.so的google::protobuf::DescriptorPool::FindFileByName()这里: