- 博客(56)
- 收藏
- 关注
原创 如何把 AI 大语言模型接入个人项目
本文介绍了如何通过Python将AI大语言模型接入自己的项目,重点讲解了使用OpenAI兼容API的方法。内容包括: 核心功能:使用Python的openai库调用AI聊天接口,详细说明客户端构造、流式/非流式调用、参数配置等关键技术点 项目示例:以HuluAiChat开源项目为例,展示如何将AI能力集成到完整应用中,支持多模型切换和本地历史管理 实践指导:提供最小可运行代码示例,并说明如何调整参数适配不同API服务 扩展思路:讨论了桌面/Web应用集成、多模型支持、流式体验优化等应用场景 文章旨在帮助开发
2026-02-25 23:43:42
4364
1
原创 Vercel Labs Skills:AI 编程安装「技能Skills」的工具
Vercel Labs Skills 是一个用于为多种AI编程代理统一安装和管理技能的命令行工具。它支持40多种代理(如Cursor、Codex、Claude Code等),提供安全透明的技能安装流程,并支持项目级或全局安装。用户可通过简单命令(如npx skills add)快速安装技能,并通过交互式或非交互式方式管理技能。工具还支持列出、搜索、更新和移除技能等功能,帮助开发者高效扩展AI代理的能力。
2026-02-25 23:35:48
3564
原创 Qt的SQL数据库模块使用的二次封装
在Qt开发中,数据库操作是常见的需求,但往往涉及大量的样板代码。本文介绍一个基于Repository模式的SQLite操作工具,旨在简化Qt应用中的数据库操作,提高代码质量和开发效率。
2026-02-23 00:08:11
691
原创 Rust学习教程2:基本语法
本文摘要:Rust基础语法教程,面向C++开发者,涵盖变量与类型、函数、控制流等核心概念。重点讲解变量声明(let/mut)、标量/复合类型、常量与变量遮蔽机制,通过作用域示例演示遮蔽行为。对比C++差异,提供类型推断指南、FAQ和练习。内容精炼实用,学完即可编写简单Rust程序。
2026-02-17 18:59:20
1104
原创 Rust学习教程1:搭建 Rust 环境
本指南详细介绍了如何在VS Code中搭建Rust开发环境,包含从安装配置到项目创建的全流程。主要内容包括:安装Rust工具链(通过rustup)、配置Cargo包管理器、安装rust-analyzer扩展实现智能代码补全、创建首个Rust项目,以及调试环境配置。特别强调了Windows用户需安装C++构建工具,所有用户都应安装rust-src组件以获得完整功能。文章还提供了Cargo.toml文件详解、依赖管理技巧和常见问题解决方案,帮助开发者快速建立高效的Rust开发环境。
2026-02-16 15:59:52
793
原创 从0到落地:vcpkg全面教程 —— 搭建私有包管理生态系统
摘要: 本教程详细介绍如何利用vcpkg搭建企业级C++私有包管理生态系统。内容涵盖三个核心环节:1) 部署私有Registry作为包管理中心;2) 将项目A(mathlib示例)打包发布到vcpkg;3) 实现项目B通过vcpkg引用项目A的完整闭环。教程提供清晰的架构图、目录结构示例和分步操作指南,包括创建Git仓库、编写vcpkg.json和portfile.cmake等关键文件。通过私有Registry,开发者可统一管理内部库和定制第三方库,解决C++依赖管理的痛点。附完整示例代码和常见问题解答,助
2026-02-05 15:47:41
1115
原创 Qt 跨线程内存管理陷阱:QSharedPointer、deleteLater() 与 QPointer 的致命组合
一次网络请求队列管理的随机崩溃,揭示了 Qt 内存管理中容易被忽视的陷阱,特别是 QPointer 在跨线程场景下的竞态条件 💥
2025-12-21 16:11:39
1087
原创 Qt功能QSortFilterProxyModel指南
本文全面介绍Qt中的QSortFilterProxyModel代理模型类,详细讲解其在QWidget和QML中的使用方法。文章从基础概念入手,分析其核心原理与架构,通过数据流转图和UML类图展示工作机制。重点提供QML集成方案,包括自定义C++原始模型类和代理模型类的完整代码示例。内容涵盖典型应用场景、性能优化建议及常见问题解决方案,帮助开发者快速掌握这一重要组件,实现数据的高效过滤与排序功能。
2025-10-31 14:37:57
1351
原创 Qt功能Q_GADGET宏
Qt中的Q_GADGET宏为非QObject类提供元对象系统的部分功能,支持枚举、属性和反射访问,但不具备信号槽和对象树管理。它与Q_OBJECT的主要区别在于:Q_GADGET适用于轻量级值类型和数据类,而Q_OBJECT适合需要信号槽通信和生命周期管理的对象。使用时需注意Q_GADGET不支持NOTIFY属性和动态属性,且必须注册元类型才能与QVariant配合。建议根据需求选择:仅需描述性功能时用Q_GADGET,需要完整对象特性时用Q_OBJECT。
2025-10-29 15:16:09
809
原创 Qt如何翻译JSON内容
📝 Qt JSON内容翻译方案 本文介绍了在Qt应用中实现JSON内容多语言翻译的方法。通过qsTranslate函数将JSON文本作为翻译源,结合Qt标准翻译机制,实现动态语言切换。
2025-10-19 15:44:02
1000
原创 Qt 的信号signal的参数是否会在内部被拷贝?
传递到 QueuedConnection 的参数类型必须可通过QMetaType构造与销毁。若为自定义类型:使用声明。。指针类型特殊处理:如果参数名以结尾,视作,不会复制对象本身,仅复制指针值。Qt 的参数是否复制,核心看连接类型:Direct 不复制、Queued 一定复制、BlockingQueued 不复制但阻塞。掌握这一点,有助于做出正确的 API 设计与性能权衡,避免隐藏的生命周期问题与不必要的开销。祝你写出更优雅高效的 Qt 信号/槽系统!🎉。
2025-09-01 17:59:14
808
原创 C++继承中虚函数调用时机问题及解决方案
本文探讨了C++继承中虚函数在构造函数调用的时机问题及解决方案。通过设备管理案例,分析基类构造函数调用虚函数时派生类重写可能失效的问题,提出采用模板方法模式结合延迟调用的优雅解决方案。具体实现包括:1) 在基类中使用QTimer延迟调用虚函数;2) 通过虚函数getFilterList()让派生类提供自定义过滤列表;3) 避免在构造函数中直接调用虚函数。这种方法确保了对象完全构造后虚函数机制正常工作,解决了继承体系中初始化顺序导致的虚函数调用问题。
2025-08-01 21:31:36
1107
2
原创 C++多线程:4种典型方案深度解析
还在为多线程数据竞争和死锁问题头疼?本文通过4个真实代码示例,深度剖析:🔥 原子操作的无锁编程技巧🔒 互斥锁的最佳使用姿势⚡ Qt线程方案的工程实践🚀 moveToThread的高效应用场景
2025-04-28 15:26:32
1049
原创 GitLab CI/CD学习教程(第四章gitlab-ci.yml)
什么是.gitlab-ci.yml?在上一章节中,我们详细讲述了Pipeline的定义,本章节将重点讲解如何对Pipeline进行精细化的控制。
2025-03-24 12:27:12
2340
2
原创 GitLab CI/CD学习教程(第三章Pipeline)
在 GitLab CI/CD 中,Pipeline是自动化的构建、测试和部署过程的集合。它是的核心概念之一,帮助开发者通过配置文件定义一系列的工作流,并自动执行这些流程。一个Pipeline通常由多个Stage(阶段)和Job(任务)组成,它们按照一定的顺序执行。每个Job执行一个具体的任务。比如运行单元测试、构建代码或部署应用等。
2025-03-19 11:20:35
2369
2
原创 GitLab CI/CD学习教程(第一章概念)
CI(持续集成)是代码提交后自动构建、测试,快速发现错误。CD(持续交付/部署)是自动将代码部署到测试或生产环境。
2025-03-12 19:05:08
1331
原创 解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
当你在程序中遇到 <font color="red"><b>qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed</b></font>错误时,可能意味着SSL/TLS协议栈未能正确初始化。 本文将深入分析常见原因,并提供可直接操作的解决方案。
2025-02-27 16:46:30
2425
原创 Qt/C++ 项目快速生成器
一个简单但强大的 Qt/C++ 项目生成器,让您的项目创建变得轻松愉快!C++的项目有时候创建比较麻烦,这个小脚本仅需要点击几下鼠标即可生成一个C++项目。
2025-02-27 10:32:52
474
原创 Python中asyncio的多种用法:异步同步
Python 的 asyncio 模块为异步编程提供了强大的支持,但在某些场景下,我们可能需要处理异步任务与非异步(同步)任务的顺序执行或并行执行。本篇文章将逐步带你了解如何在 Python 中处理这些不同类型的任务。
2024-10-12 15:58:57
3129
3
原创 C++库std::clamp
`std::clamp` 是 C++17 引入的一个强大而简洁的函数,它为值的范围限制提供了一种标准化的解决方案。通过本文的详细讲解,我们了解了 `std::clamp` 的基本用法、高级特性、实际应用场景以及性能考虑。在日常编程中,合理使用 `std::clamp` 可以让我们的代码更加简洁、高效、易读。希望这篇教程能够帮助您在实际项目中熟练运用 `std::clamp`,提高代码质量和开发效率。
2024-09-14 12:23:46
8605
原创 【Qt的TS文件转换器】利用Python实现自动化TS文件转换
在开发多语言Qt应用时,管理和更新翻译文件是一项繁琐但必要的任务。这个工具旨在自动化Qt Linguist TS文件的转换过程,支持不同语言之间的转换,特别关注中文变体和其他语言。
2024-08-29 12:04:18
1634
原创 解决Qt多线程中fromRawData函数生成的QByteArray数据不一致问题
本文探讨了在Qt多线程应用中使用QByteArray时可能遇到的数据不一致问题。文章首先介绍了一个典型场景:在工作线程中读取设备数据,然后通过信号-槽机制传递到主线程进行处理。问题出现在不同线程中打印同一QByteArray对象时得到不一致的结果。文章分析了问题的根源:使用QByteArray::fromRawData()方法创建了共享底层数据的QByteArray,导致在跨线程传递时可能出现数据变化。解决方案是在发送信号时创建QByteArray的完整副本,确保数据的独立性和一致性。
2024-08-21 17:30:19
991
原创 解决Qml中的Rectangle圆角外部区域也会触发鼠标事件的问题
在很多场景下,有用到各种带有圆角属性的Rectangle作为交互的控件,当radius设置的比较大时,鼠标悬浮在外部区域也会触发各种信号。比较头疼。比如,以下代码通过实现了一个圆形控件。然后创建一个,当鼠标进入圆形区域,希望看到圆的颜色会发生改变。然而实际效果却是还没进行圆形区域就触发了信号,虽然设置了,圆角外部还是属于的范围,所以会触发。
2024-08-05 18:56:11
502
原创 Git钩子Hook功能
Git Hooks是Git内置的一种机制,允许在特定事件发生时执行自定义脚本。Git Hook可以在客户端和服务器端配置,经常用于自动化任务、增强开发流程以及确保代码质量。
2024-07-15 16:22:08
3987
原创 Git常用功能
拉取(Pul)与获取(Fetch)重置(reset)贮藏(stash)补丁(patch)摘取(cherry-pick)追溯(Blame)忽略(ignore)
2024-07-02 18:38:40
1457
原创 Git中的变基(Rebase)
在Git中,下载后运行变基通常是指使用git pull命令结合--rebase选项,从远程仓库获取最新的更新并将其应用到当前分支的操作。与默认的git pull不同,--rebase选项会将远程分支的更改应用到你的提交之下,以保持提交历史的线性。变基操作会将当前分支的提交“移植”到另一个基点上,这个基点通常是远程分支的最新提交。这种操作会重写提交历史,使其看起来像是从新的基点上直接进行的开发。
2024-06-24 11:20:06
4124
原创 Window下程序使用CrashPad库生成dump并定位代码
在Windows应用程序开发中,崩溃是不可避免的。为了提高应用程序的稳定性和可靠性,开发者需要一种有效的方法来捕捉和分析崩溃信息。Crashpad是Google开源的崩溃报告工具,可以帮助我们在应用程序崩溃时生成详细的dump文件。本文将以Window程序为例,介绍如何集成Crashpad并生成dump文件。Crashpad是一个跨平台的崩溃报告工具,支持Windows、macOS和Linux。在程序崩溃时捕获崩溃信息并生成dump文件存储崩溃报告传递崩溃报告到服务器进行分析。
2024-06-13 17:42:15
2738
9
原创 Qt/C++中的异步编程
异步编程是现代应用程序开发中不可或缺的一部分。它允许程序在执行耗时任务时保持响应性,特别是在GUI应用程序中。在Qt/C++中,有多种方式来实现异步编程。本文将重点介绍如何使用Qt中的QtConcurrent库,Qml中ES6标准的Promise还有C++标准库std::future,std::promise进行异步编程,并讲解他们之间的区别。
2024-06-11 22:51:12
2005
原创 通过CMake的option启用或禁用特定功能
option命令用于定义布尔型选项,可以在构建项目时启用或禁用特定的功能。option可以在CMake配置时被打开或关闭,从而影响构建流程。通过option,我们可以为用户提供灵活的配置方式,使其可以根据需要启用或禁用某些功能。不修改CMakeLists情况下启用或禁用option, 各种option的使用场景与实际应哟
2024-06-07 15:08:11
4153
原创 C++库std::ref
C++库std::ref介绍, 语法,示例, 使用场景, 多线程编程, 实现回调机制,标准库算法, 绑定函数。与直接引用&的区别。注意引用生命周期和与标准库容器的结合
2024-06-06 15:04:35
2151
原创 实现飞书机器人推送消息到指定群组或者用户
飞书是一个集成了聊天、协作和办公功能的企业级平台,广泛应用于企业内部沟通和协作。飞书机器人(Feishu Bot)是一种强大的工具,允许开发者通过编程接口与飞书进行互动,从而实现自动化消息推送和任务管理。本文将详细介绍如何通过飞书机器人推送消息给指定的人或者群组,帮助您快速上手。
2024-06-01 18:42:34
5838
原创 通过PyInstaller把Python文件打包成应用程序
这篇博客文章为程序员提供了使用PyInstaller将Python程序打包成独立可执行文件的详细教程。内容包括PyInstaller的安装、基本使用方法、高级用法,通过spec文件打包程序,常见问题解决及最佳实践,旨在帮助读者快速掌握这项工具,提高Python项目的分发和部署效率。
2024-05-31 00:21:31
1275
Qt + TS文件自动转换脚本工具 + 多语言支持转换 + 提升项目本地化效率
2024-08-28
桌面应用开发 + PyQt + Qt Quick + 示例代码 + 快速入门
2024-07-19
Git Hooks + 自动化脚本 + 示例代码 + 提高开发效率
2024-07-15
软件著作权登记模板+软著登记源代码模板+软件著作权登记信息表模板
2024-07-03
基于QCustomPlot的支持使用 Qml 的简单工程示例
2024-06-18
编译好的Crashpad库 (x86 & x64) - Release & Debug 版本
2024-06-13
生成dump+Crashpad+示例代码+崩溃分析
2024-06-13
CMake教程+CMake option+启用禁用特定功能代码示例+项目配置
2024-06-12
OpenSSL源码x86和x64库文件+OpenSSL+源码+Windows库+安全开发
2024-06-05
编程字体+思源黑体+高质量免费开源+开发设计利器
2024-06-05
通过Python实现飞书机器人推送消息到指定群组或者用户
2024-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅