ITPub博客

首页 > 人工智能 > 人工智能 > 为嵌入式设备的智能体开发引入 QML 实时预览 MCP 工具

为嵌入式设备的智能体开发引入 QML 实时预览 MCP 工具

人工智能 作者:ITPUB社群 时间:1970-01-01 08:33:46 0 删除 编辑

智能体编辑 QML,但不构建、编译和运行就看不到结果

AI 智能体可以在一次迭代中进行大量 UI 更改。AI 智能体编辑文件,可能运行一次构建,然后报告成功。每次更改都可能需要完整的重新构建和重新启动,否则开发者就无法检查。Qt 的 QML Live Preview MCP 工具以较低的 token 开销让自主 AI 智能体的工作对开发者透明:它运行应用并热重载更改的 QML 文件,无需重新构建,也无需重新启动。

Qt 6.12 已经附带 qmlpreview 可执行文件,但直接从智能体框架中使用它比看起来更难。智能体必须:

  • 将 qmlpreview 作为长时间运行的后台进程启动并跟踪它

  • 知道何时需要重启热重载,因为某些代码更改(例如 C++ 或单例注册)无法在不重启和重放事件的情况下体现

  • 在出现问题时关闭进程并重新启动它

以上每一项都可能让智能体浪费时间、做出错误猜测,或在第一次小问题后就停止使用预览。

视频:Claude Code CLI 中的 QML Live Preview(注意:视频为清晰和紧凑进行了编辑)

但 QML 预览的热重载有其局限性。偶尔需要重启甚至重新构建应用,然后通过手动提示重新启动预览。

面向 AI 智能体和开发者的 QML 热重载

QML Live Preview MCP 工具将 qmlpreview 转变为智能体可以调用的工具。它是一个 Model Context Protocol 服务器,暴露一个工具 run_qmlPreview。智能体传入应用程序可执行文件的绝对路径,该工具便以启用实时预览(热重载)的方式启动应用。此后,对大多数 QML 源文件的编辑都会显示在运行中的应用里,而无需重新构建。

智能体工作时你看到的就是同一个预览窗口,因此你可以针对实时 UI 提供反馈,而不是针对它的描述。

与 QML 编码技能协同工作

QML(qt-qml)编码技能已更新,以引导智能体如何使用 MCP 工具。当该工具已连接且项目使用 Qt 6.12 或更新版本时,该技能:

  • 检查应用程序目标是否使用 QT_QML_DEBUG 构建,如果缺失,则提供需要添加的确切 CMake 行,作用域限定为调试构建,并在编辑你的 CMakeLists.txt 之前询问

  • 提供启动预览的选项并等待你的回答

  • 当更改需要重新构建时提前告知你,并在编辑不再显示时建议重启预览

一个只有 qmlpreview 可执行文件的智能体必须自己解决所有这些问题。当技能和工具一起安装时,这些步骤是内置的。

限制

  • 仅限 Qt 6.12 或更新版本。QML Live Preview MCP 工具仅适用于使用 Qt 6.12 及更新版本进行 Qt UI 开发。

  • 仅限 QML。该工具监视磁盘上的 QML 文件。某些更改需要重新构建应用程序:任何 C++ 更改、对 qmldir、模块 URI 或版本或单例注册的更改、对 CMakeLists.txt 的更改(包括向模块添加文件)、应用程序未链接的模块的新导入,以及当项目将其 QML 编译为 Qt 资源时的新 QML 文件。

  • 并非每个 QML 编辑都能在热重载后保留。某些编辑,例如将普通值转换为绑定或将绑定移动到另一个属性,可能会被应用但丢失 UI 状态,或者可能根本不显示。如果预览报告热重载失败,它会重启应用程序并重放记录的输入事件。如果编辑不再显示,请再次启动预览。

  • 单一 QML 引擎。QML Live Preview 在创建多个 QQmlEngine 或 QQmlApplicationEngine,或在工作线程上加载 QML 的应用程序中不可靠。

  • QML 必须来自 QML 模块。如果应用程序未链接任何使用 qt_add_qml_module() 创建的 QML 模块,则嵌入在 Qt 资源中的 QML 的热重载将无法工作。

测试环境

QML Live Preview MCP 工具已使用 Claude Code CLI 搭配 Claude Sonnet 5.5、GitHub Copilot 搭配 GPT 6-Luna 以及 Qwen Code 搭配 GLM 5.2 进行测试。

在哪里可以获取该工具?

与智能体技能不同,QML Live Preview MCP 工具通过 Qt 安装程序或 Qt 维护应用程序分发:在组件树中,打开新文件夹“Agentic Development Tools”并选择“QmlPreview MCP Server”。服务器安装后,你可以在 Qt 6.12+ 安装的 `bin` 文件夹中找到该二进制文件。

你可以通过提示类似“连接到位于 Qt 6.12 安装 bin 文件夹中的 QmlPreviewMcpServer”来将 MCP 服务器与你的智能体框架连接。

更新后的 qt-qml 编码技能可从 Qt 智能体技能仓库获取。



转载声明:本文为转载整理,原文版权归原作者及原站点所有。

原文来源:Qt Blog

原创地址:https://www.qt.io/blog/introducing-the-qml-live-preview-mcp-tool-for-agentic-development-of-embedded-devices

原文作者:Peter Schneider;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    1090
  • 访问量
    546712