喵个咪的博客喵个咪的博客
喵个咪的技术与生活
文章列表
文章分类
文章标签
时间线
喵个咪的技术与生活
文章列表
文章分类
文章标签
时间线
健康养生 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。
安装QT开发环境

Date: 1/1/2020Category: 编程技术Tag: Qt

Qt(发音同 “cute”)是一套跨平台的 C++ 应用程序开发框架,由挪威公司 Trolltech(后被诺基亚、Digia 收购,现为 The Qt Company)开发,核心目标是让开发者用 “一次编写,到处运行”(Write Once, Run Everywhere)的方式,高效开发出在不同平台上(Windows、Linux、macOS、Android、iOS、嵌入式系统等)具有一致功能和体验的应用程序。

官方下载网址:http://download.qt.io/