调试Qt Quick 项目
调试 JavaScript 函数,执行 JavaScript 表达式以获取有关 UI 状态的信息,并检查 QML 属性和 JavaScript 变量,以及在运行时临时更改其值。
有关如何调试Qt Quick 项目的示例,请参阅教程:《Qt Quick 调试》。
设置 QML 调试
Qt Quick 项目的调试设置流程取决于项目类型: Qt Quick UI Prototype 或 Qt Quick Application,以及 Qt 版本。
调试Qt Quick UI 项目
要调试Qt Quick UI 项目(.qmlproject ),请在“Run Settings ”>“Debugger Settings ”>“QML debugger ”中选择“Automatic ”或“Enabled ”。

调试Qt Quick 应用程序
要调试Qt Quick 应用程序:
- 要创建支持 QML 调试的构建配置,请转至“Projects ” > “Build Settings ”。
- 在QML debugging and profiling 中,选择“Enable ”。

注意:调试 需要在 TCP 端口上打开一个套接字,这会带来安全风险。互联网上的任何人都可以连接到您正在调试的应用程序,并执行任何 JavaScript 函数。因此,您必须确保该端口受到防火墙的妥善保护。
- 在“Run Settings ” > “Debugger settings ” > “QML debugger ”中,选择“Automatic ”或“Enabled ”以启用运行中应用程序的 QML 调试功能。
若要同时调试应用程序的 C++ 和 QML 部分,还需在C++ debugger 中选择Automatic 或Enabled 。
- 转到“Build ”,然后选择“Rebuild Project ”以清理并重新构建项目。
- 要在设备上调试应用程序,请在开始调试前确认设备上已安装 Qt 库,并选择与该设备对应的套件。
注意: 调试所需的qmltooling 插件 会在执行“Qt Creator ”和安装 Qt Qml 时自动安装。如果您计划调试 QML 应用程序,请勿删除这些插件。
使用默认值
您可以在“Preferences ” > “Build & Run ” > “Default Build Properties ”中全局启用或禁用 QML 调试。

“QML debugging ”字段的值决定了创建新构建配置时的行为。“Enable ”和“Disable ”这两个值会明确将新构建配置的 QML 调试设置为该值,无论您创建的是何种类型的构建配置。
Use Project Default 使这些值取决于构建配置的类型:Debug 、Profile 或Release 。当您使用CMake或qmake作为构建系统时,调试和性能分析构建配置会启用 QML 调试。但是,发布版构建配置不包含 QML 调试,因为调试功能会使应用程序存在安全漏洞。
在Projects >Build Settings >QML debugging and profiling 中,Default 选项可保持现有已配置的 CMake 构建目录不变。此外,它还允许您将现有构建导入Qt Creator 而不强制进行更改,因此您无需担心需要对项目进行完全重建等情况。即使您稍后在Qt Creator 之外更改了构建配置,该配置也会按您的意愿保留。
在Preferences >Build & Run >Default Build Properties 中的全局设置与构建配置之间的交互中,存在一些已知问题。例如,对于 qmake,全局设置仅影响启用套件时自动生成的构建配置。此外,CMake 会忽略该全局设置。
启动 QML 调试
要启动应用程序,请选择“Debug ” > “Start Debugging ” > “Start Debugging of Startup Project ”,或按F5 键。应用程序开始运行后,其行为和性能与平时一致。随后您可以执行以下任务:
- 调试 JavaScript 函数
- 执行 JavaScript 表达式以获取应用程序状态信息
- 检查 QML 属性和 JavaScript 变量,并在运行时临时修改它们
要调试已运行的应用程序:
- 使用适当的配置参数构建应用程序(如果您使用 `Qt Creator` 构建应用程序,它会自动使用正确的配置):
- 使用 CMake 时,
CMakeLists.txt文件中定义了target_compile_definitions命令:target_compile_definitions(myapp PRIVATE QT_QML_DEBUG)其中myapp是要调试的应用程序。
- 使用 qmake 时,在
.pro文件中为CONFIG属性定义以下值:CONFIG += qml_debug
- 使用 CMake 时,
- 使用以下参数启动应用程序:
-qmljsdebugger=port:<port>[,host:<ip address>][,block]其中,
port(必填)指定调试端口,ip address(可选)指定应用程序运行的主机的 IP 地址,block(可选)则会阻止应用程序运行,直到调试客户端连接到服务器为止。这使得应用程序从启动时即可进行调试。注意: 只有在以块模式启动应用程序时,才能设置 断点。
- 转至“Debug ” > “Start Debugging ” > “Attach to QML Port ”。
选择已为运行待调试应用程序的设备配置好的开发套件。应用程序启动时,标准输出中会显示要使用的端口号。
调试 JavaScript 函数
您可以使用Qt Creator 的Debug 模式,在调试过程中检查应用程序的状态。您可以通过以下方式与调试器交互:
检查项目
在应用程序运行时,您可以使用“Locals ”视图来探索 QML 项的结构。

若要在与调试器交互时保持应用程序可见,请选择“Debug ” > “Show Application on Top ”。
您可以通过以下方式在“Locals ”视图中查看 QML 项:
- 在对象树中展开该项。
- 在代码编辑器中选中该项。
- 转到“Debug ” > “Select ”以激活选择模式,然后在运行中的应用程序中选择一个项。
若要临时更改属性值(无需编辑源代码),请双击该属性并输入新值。您可以在运行中的应用程序中查看结果。
检查用户界面
在调试复杂应用程序时,您可以跳转到代码中定义该项的位置。
在选择模式下,您可以选择正在运行的应用程序中的项目,从而跳转到代码中其定义的位置。所选项目的属性将显示在“Locals ”视图中。
您还可以在运行中的应用程序中查看项的层次结构:
双击运行中的应用程序中的某个项目,即可按光标位置依次遍历项目堆栈。
要退出选择模式,请切换“Select ”菜单项。
要将“Qt QML Viewer ”中运行的应用程序置于最前端,请选择“Debug ” > “Show Application on Top ”。
执行 JavaScript 表达式
当应用程序被断点中断时,您可以使用“QML Debugger Console ”在当前上下文中执行 JavaScript 表达式。要打开它,请选择“View ” > “Output ” > “QML Debugger Console ”。

您可以临时更改属性值(无需编辑源代码),并在运行中的应用程序中查看结果。您还可以在代码中永久更改属性值。
在运行时应用 QML 更改
当您在“QML Debugger Console ”或“Locals ”及“Expression ”视图中更改属性值时,这些更改会立即在运行中的应用程序中更新,但不会反映在源代码中。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.