news 2026/6/10 17:28:19

QT快速开发框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QT快速开发框架

QtMachineDog:告别重复造轮子,Qt 快速开发脚手架

"不管多小的 Qt 项目,总有一堆琐碎但必要的事情要做。"

作为一个 Qt 开发者,你是否经历过:

  • 每次新建项目都要重写一遍日志系统?
  • 程序崩溃后用户说"不知道发生了什么",而你根本拿不到堆栈?
  • 配置文件散落在各处,版本升级后配置丢失?
  • HTTP 请求封装写了无数次,每次都要重新解析 JSON?
  • 简单的数据 CRUD 操作,却要重写大量样板代码?

这些问题和具体业务无关,却每个项目都要面对。这就是我做QtMachineDog的原因——把通用的事一次做好,让开发者专注于业务逻辑

开源地址:https://gitee.com/Tlink/machine


简单介绍

QtMachineDog是一个基于CMake的 Qt 快速开发框架/脚手架。它不是试图替代 Qt,而是填补"项目初始化"到"业务开发"之间的空白——你不再需要为每个项目复制粘贴基础设施代码

核心定位:开箱即用的项目骨架,而非重量级业务框架


功能亮点(即拿即用)

功能模块解决的问题亮点特性
📜 日志系统告别 qDebug() 满天飞分级日志、文件轮转、多线程安全
💥 全局异常处理崩溃无迹可寻自动捕获崩溃信号,生成完整堆栈日志,再也不怕用户说"程序突然没了"
⚙️ 配置中心配置管理混乱全局统一的配置文件管理,支持版本兼容、自动备份
💾 持久化数据数据存储重复造轮子封装好的本地存储方案,业务层直接调用
🌐 HTTP 模块网络请求代码冗余基于现代 Qt 网络栈的请求封装,自动 JSON 解析、错误处理、超时重试
🗃️ 数据 CRUD 模板每次都要写增删改查可复制的业务模板,复制粘贴即可用于新模块,遵循统一设计模式
🏷️ 版本管理版本号混乱、自动更新困难语义化版本管理,内置更新检查接口
🖥️ Self-Host Web 服务需要内嵌 HTTP 服务内置轻量级 Web Server,可用于本地 API 或监控面板
🎨 FontAwesome 集成图标资源管理麻烦内置 FontAwesome,支持动态颜色/大小控制,无需准备多套图标资源
🔗 动态库管理DLL/SO 加载繁琐统一的动态链接库加载、热插拔支持
🔧 CMake 现代化跨平台构建头疼全 CMake 构建,支持 Windows/Linux/macOS,第三方依赖自动拉取

💡 谁需要这个项目?

个人开发者:快速启动 Side Project,不用每次都配基础设施
小团队:统一项目结构,新人上手成本降低 80%
企业项目:作为基础脚手架,确保所有项目有统一的日志、崩溃收集标准、快速开发示例
学习者:通过实战代码学习 Qt 工程化最佳实践(异常处理、CMake 模块化等)


项目结构遵循模块化设计,你可以:

  • 全量使用:作为完整脚手架启动新项目
  • 按需摘取:只拷贝你需要的模块(如只拿 Crash Handler 和 Logger)到现有项目

🔍 几个值得单独说的亮点

1. 崩溃处理:让"玄学 Bug"现形

/* by 01022.hk - online tools website : 01022.hk/zh/jsonzip.html */ void ExceptionHandler::setup() { try { spdlog::info("Setting up exception handlers..."); // 1. 设置 C++ 异常处理 originalTerminateHandler = std::get_terminate(); std::set_terminate(&ExceptionHandler::terminateHandler); // 2. 设置 Qt 消息处理 originalQtMessageHandler = qInstallMessageHandler(&ExceptionHandler::qtMessageHandler); // 3. 设置信号处理 - 关键:捕获段错误等 std::signal(SIGSEGV, ExceptionHandler::signalHandler); // 段错误 std::signal(SIGABRT, ExceptionHandler::signalHandler); // abort() std::signal(SIGFPE, ExceptionHandler::signalHandler); // 浮点异常 std::signal(SIGILL, ExceptionHandler::signalHandler); // 非法指令 // 注意:不要捕获 SIGTERM 和 SIGINT,让程序可以正常退出 // std::signal(SIGTERM, ExceptionHandler::signalHandler); // 终止信号 // std::signal(SIGINT, ExceptionHandler::signalHandler); // Ctrl+C spdlog::info("Exception handlers installed successfully"); } catch (const std::exception& e) { spdlog::error("Failed to install exception handlers: {}", e.what()); } }

2. fontawesome字体图标选择与使用

/* by 01022.hk - online tools website : 01022.hk/zh/jsonzip.html */ ui->btnErrorTest->setIcon(FontManager::ins().icon(0xf06a, {24,24}, QColor(200,0,0))); ui->btnIconChoose->setIcon(FontManager::ins().icon(0xf2b4, {24,24}, QColor(0,0,255))); ui->btnConfigLoad->setIcon(FontManager::ins().icon(0xf1de, {24,24}, QColor("#228B22"))); ui->btnMylib->setIcon(FontManager::ins().icon(0xf0e7, {24,24}, QColor(255,0,0)));

3. CRUD 模板:业务开发的复制粘贴神器

项目提供了一套基于 Qt Model/View 的通用数据操作模板,开发新模块时,复制模板文件夹,改改类名就能用,包含:

  • 数据模型定义
  • 数据库操作接口
  • 视图绑定逻辑
  • 基础的增删改查 UI

4. SelfHost Web服务-可内嵌 HTTP 服务 | 内置轻量级 Web Server,可用于本地 API 或监控面板

💬 写在最后

QtMachineDog 不是一个大而全的框架,而是一个务实的解决方案——解决那些每个 Qt 项目都会遇到、却没有人系统整理过的问题。

如果你也曾为"又要重写日志系统"而烦恼,不妨试试这个框架。把重复的事情交给 MachineDog,你专心做独一无二的功能。


🔧下一步集成asp.net core发布后的selfhost

使用SignalR,通过api来接受设备的实时状态,并轻量的web输出到网络
asp.net core相关的处理数据api demo
既保证了工业设备的稳重(桌面程序),又能使数据流动变得轻盈(web程序)

如果对你有帮助有启发,请帮忙转发点赞,star,您的支持是我的最大动力

开源地址:https://gitee.com/Tlink/machine

#Qt #Qt开发 #CMake #开源项目 #C++ #跨平台开发

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:32:21

探索 6 机 30 节点电力系统的混合规划求解

基于混合规划求解6机30节点的机组启停情况以及支路与节点的功率情况,有说明文档,精品代码,考虑安全约束与热备用。在电力系统的研究与运行优化中,精确求解机组启停情况以及支路与节点的功率情况是至关重要的。今天咱们就来聊聊基于…

作者头像 李华
网站建设 2026/6/10 2:58:50

金融风控测试新范式:因果发现算法优化误报率的实战路径

2026年金融科技监管趋严背景下,反欺诈模型误报率每降低1%可节省千万级运营成本(某银行实测数据),但传统特征工程面临特征混杂性难题。因果发现算法通过识别欺诈行为的真实诱因,为测试人员提供可解释的优化路径。 一、误…

作者头像 李华
网站建设 2026/6/10 21:39:59

我终于能够在 Debian 13 上享受 KDE 6了,桌面稳定到让人尖叫

过去一年,我几乎把所有主流发行版都试了个遍,就为了让 KDE Plasma 6 在我的机器上“正常运行”。Arch、Fedora KDE、Kubuntu、openSUSE Tumbleweed、Neon……能装的我都装了,能调的配置我都调了,但结果呢?每次都卡在同一个致命问题上——颜色渲染诡异得要命,灰色阴影深得…

作者头像 李华
网站建设 2026/6/4 22:11:41

HoRain云--通过Xshell连接linux——安装Nginx

🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

作者头像 李华