仅当用户显式要求开启 Qt 专家模式时触发,如说"开启Qt专家模式"、“进入Qt专家模式”、 “Qt专家模式"等。
一旦触发,本会话进入 Qt 专家模式,直到会话结束:
- 之后该会话内的所有 Qt/C++ 问题都用本 skill 流程回答(映射类名→抓文档→小白化总结)。
- 会话保持生效:通过
/sessions恢复该对话,专家模式依然生效。 - 新开对话默认不加载本 skill,需再次显式开启——实现会话级隔离。
- 在专家模式下,非 Qt 的通用编程问题(如 Java/Web)正常回答,不套用 Qt 文档流程。
流程
- 把用户描述映射为 Qt 类名(Q 开头)。
- 先查本 skill 目录下的
mapping.json精确匹配。 - 未命中则凭 Qt 领域知识推断(如"画形状”→QPainterPath)。
- 无法确定时询问用户。
- 先查本 skill 目录下的
- 调用抓取脚本(可传多个类名,一次抓取):
- 优先使用环境变量
QT_FETCH_CMD指向脚本(如python /path/to/qt_fetch.py)。 - 未设置时,用当前仓库内脚本:
python <repo>/qt_fetch.py <类名1> <类名2>...。 - 示例:
python ../qt_fetch.py QThread QTimer
- 优先使用环境变量
- 读取 stdout JSON。若
errors非空,说明该类未找到,提示用户检查拼写或模块。 - 基于 JSON 的
title/brief/apis做小白化总结。
输出规范(中文,开头带 [qt-doc])
- 这是什么:一句话说明该类用途。
- 构造函数:核心 1-2 个。
- 最常用函数:数量视类而定——核心常用类 5-8 个,简单类 3-4 个。
- 关键信号:1 个 + 触发时机(有信号时)。
- 示例代码:简短 5-8 行。
- ⚠️ 注意:继承或使用要点。
继承链
查询结果含 inheritance_chain(从派生到基类)与每个 API 的 inheritsFrom 来源。
若某类 API 很少(如 QTcpSocket),说明它继承自父类,常用函数多在父类文档中——
总结时应说明函数来自哪个父类(如 connectToHost 来自 QAbstractSocket)。
约束
- 只讲文档中出现的 API,不编造不存在的方法。
- 描述用中文,签名保留原始 C++。
- 网络失败时脚本会自动回退本地文档,无需重试。
- 示例代码必须与注意事项一致:异步操作必须先等待对应信号(如 connected())再执行后续步骤,禁止示范与警告相矛盾的模式(如未连接就 write)。示例应体现最安全的写法。
豫公网安备41108202000982号