<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Qt-Doc on 鹿鸣青野的blog</title><link>https://www.sylgalaxy.xyz/tags/qt-doc/</link><description>Recent content in Qt-Doc on 鹿鸣青野的blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 13 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.sylgalaxy.xyz/tags/qt-doc/index.xml" rel="self" type="application/rss+xml"/><item><title>qt-doc · Qt 智能文档 Skill</title><link>https://www.sylgalaxy.xyz/posts/ai-qt-doc-readme/</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.sylgalaxy.xyz/posts/ai-qt-doc-readme/</guid><description>&lt;p&gt;&lt;strong&gt;不要死记硬背 Qt 类名，告诉它你想干什么。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一个为 opencode 设计的 Qt 领域智能体 Skill：你只需要用中文描述需求
（&amp;ldquo;查一下线程怎么用&amp;rdquo;），它会自动映射为 &lt;code&gt;QThread&lt;/code&gt;，抓取官方文档，并返回小白能看懂的核心 API 总结。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这不是搜索引擎，这是一个懂 Qt 的领域智能体。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-它能做什么"&gt;✨ 它能做什么&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;能力&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;th&gt;示例&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;意图感知&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;中文概念自动映射为 Qt 类名&lt;/td&gt;
&lt;td&gt;&amp;ldquo;线程&amp;rdquo; → &lt;code&gt;QThread&lt;/code&gt;，&amp;ldquo;画形状&amp;rdquo; → &lt;code&gt;QPainterPath&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;继承链展开&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;自动递归抓取父类文档&lt;/td&gt;
&lt;td&gt;查 &lt;code&gt;QTcpSocket&lt;/code&gt; 返回整个 &lt;code&gt;QAbstractSocket→QIODevice→QObject&lt;/code&gt; 族，2 个 API → 216 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;来源标注&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;每个 API 标注来自哪个类&lt;/td&gt;
&lt;td&gt;&lt;code&gt;connectToHost&lt;/code&gt;（来自 &lt;code&gt;QAbstractSocket&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;小白化总结&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;官方文档降维成通俗解释&lt;/td&gt;
&lt;td&gt;构造函数 / 最常用函数 / 关键信号 / 示例 / 注意事项&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;三级数据源&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;在线 → 本地离线文档 → JSON 缓存&lt;/td&gt;
&lt;td&gt;断网可用，二次查询秒回&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;会话隔离&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;显式开启专家模式，不误触发&lt;/td&gt;
&lt;td&gt;未开启时零劫持 Web/Java 等非 Qt 问题&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="-快速开始"&gt;🚀 快速开始&lt;/h2&gt;
&lt;h3 id="环境要求"&gt;环境要求&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;依赖：&lt;code&gt;requests&lt;/code&gt;、&lt;code&gt;beautifulsoup4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opencode.ai"&gt;opencode&lt;/a&gt;（可选用任意支持 Skill 的 Agent 运行器）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="安装"&gt;安装&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone &amp;lt;your-repo-url&amp;gt; qt-doc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd qt-doc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 skill 到 opencode 全局（可选）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp -r qt-doc ~/.config/opencode/skills/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="使用"&gt;使用&lt;/h3&gt;
&lt;p&gt;重启 opencode 后，在会话中：&lt;/p&gt;</description></item><item><title>qt-doc（Qt 智能文档）</title><link>https://www.sylgalaxy.xyz/posts/ai-qt-doc-skill/</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.sylgalaxy.xyz/posts/ai-qt-doc-skill/</guid><description>&lt;p&gt;&lt;strong&gt;仅当用户显式要求开启 Qt 专家模式时触发&lt;/strong&gt;，如说&amp;quot;开启Qt专家模式&amp;quot;、&amp;ldquo;进入Qt专家模式&amp;rdquo;、
&amp;ldquo;Qt专家模式&amp;quot;等。&lt;/p&gt;
&lt;p&gt;一旦触发，&lt;strong&gt;本会话进入 Qt 专家模式&lt;/strong&gt;，直到会话结束：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;之后该会话内的所有 Qt/C++ 问题都用本 skill 流程回答（映射类名→抓文档→小白化总结）。&lt;/li&gt;
&lt;li&gt;会话保持生效：通过 &lt;code&gt;/sessions&lt;/code&gt; 恢复该对话，专家模式依然生效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新开对话默认不加载本 skill&lt;/strong&gt;，需再次显式开启——实现会话级隔离。&lt;/li&gt;
&lt;li&gt;在专家模式下，非 Qt 的通用编程问题（如 Java/Web）正常回答，不套用 Qt 文档流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="流程"&gt;流程&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;把用户描述映射为 Qt 类名（Q 开头）。
&lt;ul&gt;
&lt;li&gt;先查本 skill 目录下的 &lt;code&gt;mapping.json&lt;/code&gt; 精确匹配。&lt;/li&gt;
&lt;li&gt;未命中则凭 Qt 领域知识推断（如&amp;quot;画形状&amp;rdquo;→QPainterPath）。&lt;/li&gt;
&lt;li&gt;无法确定时询问用户。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;调用抓取脚本（可传多个类名，一次抓取）：
&lt;ul&gt;
&lt;li&gt;优先使用环境变量 &lt;code&gt;QT_FETCH_CMD&lt;/code&gt; 指向脚本（如 &lt;code&gt;python /path/to/qt_fetch.py&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;未设置时，用当前仓库内脚本：&lt;code&gt;python &amp;lt;repo&amp;gt;/qt_fetch.py &amp;lt;类名1&amp;gt; &amp;lt;类名2&amp;gt;...&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;示例：&lt;code&gt;python ../qt_fetch.py QThread QTimer&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;读取 stdout JSON。若 &lt;code&gt;errors&lt;/code&gt; 非空，说明该类未找到，提示用户检查拼写或模块。&lt;/li&gt;
&lt;li&gt;基于 JSON 的 &lt;code&gt;title/brief/apis&lt;/code&gt; 做小白化总结。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="输出规范中文开头带-qt-doc"&gt;输出规范（中文，开头带 [qt-doc]）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;这是什么&lt;/strong&gt;：一句话说明该类用途。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;构造函数&lt;/strong&gt;：核心 1-2 个。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最常用函数&lt;/strong&gt;：数量视类而定——核心常用类 5-8 个，简单类 3-4 个。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键信号&lt;/strong&gt;：1 个 + 触发时机（有信号时）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例代码&lt;/strong&gt;：简短 5-8 行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;⚠️ 注意&lt;/strong&gt;：继承或使用要点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="继承链"&gt;继承链&lt;/h2&gt;
&lt;p&gt;查询结果含 &lt;code&gt;inheritance_chain&lt;/code&gt;（从派生到基类）与每个 API 的 &lt;code&gt;inheritsFrom&lt;/code&gt; 来源。
若某类 API 很少（如 QTcpSocket），说明它继承自父类，常用函数多在父类文档中——
总结时应说明函数来自哪个父类（如 connectToHost 来自 QAbstractSocket）。&lt;/p&gt;</description></item></channel></rss>