使用 QML 运行时工具进行原型设计#
用于测试和加载 QML 文件的实用工具
Qt 包含了 qml
执行程序,这是一个加载和显示 QML 文档的实用工具。
qml
实用工具主要适用于测试您的 QML 应用程序和组件。要在生产环境中启动 QML 应用程序,通常您需要开发一个自定义的 C++ 应用程序或者在模块中捆绑 QML 文件。有关更多信息,请参阅 部署 QML 应用程序。当给定的根元素为裸露的 Item 时,qml
将自动创建一个窗口来显示场景。值得注意的是,QQmlComponent::create() 不会这样做。因此,当从使用 qml
开发的原型迁移到 C++ 应用程序时,您需要确保根元素是一个窗口,或者在 C++ 中创建一个 QQuickView 来持有根 Item。但在此期间,您可以使用 qml
工具分别加载和测试原型的一部分。
要加载 .qml 文件,请在命令提示符中提供文件路径。
$ qml myqmlfile.qml
要查看配置选项,请使用 qml
与 --help
参数运行。
当您要加载的 QML 文件中的根对象是 Item 而不是 Window 时,需要将其包装在一个 Window 中才能显示。当这项工作正在进行时,已经加载的顶层对象由一个 PartialScene
对象表示。然后,qml
工具将加载额外的 QML 文件以决定下一步操作:一个是配置文件,指定了在哪种容器中包装 PartialScene
。PartialScene.container
属性提供了一个指向容器组件 QML 源代码的 URL,通常应该声明一个包含所加载的第一个 Item 的窗口。因此,将 Item 包装到窗口中的过程是可编程的;默认情况下,这两个额外的 QML 文件是从 qml 执行程序内的资源加载的。您可以使用 --list-conf
命令列出可用的配置。
$ qml --list-conf Built-in configurations: default resizeToItem
默认配置提供默认行为:启动时根项目将被调整大小以填充包装窗口,并且在用户调整窗口大小时也会发生。另外的 resizeToItem
配置工作方式相反:项目可以程序化地设置自己的大小(例如通过将其自己的 width
和 height
属性进行绑定),包装窗口将调整大小时予以适配(受制于窗口系统可能施加的任何限制)。您可以使用 -c
或 --config
选项选择其中之一。
$ qml -c resizeToItem selfResizingItem.qml
您可以通过在 QStandardPaths::AppConfigLocation 创建配置目录来添加额外的配置,每个目录中都包含两个 QML 文件:一个名为 configuration.qml
的配置文件,以及一个声明项包装器的 QML 文件,可以命名任意。如果已经完成,则 qml --list-conf
命令还会列出这些额外配置,而 --verbose
选项会展开这些配置,给出那些配置的完整路径以及搜索过的额外位置。
$ qml --list-conf --verbose Built-in configurations: default resizeToItem Other configurations: /home/myuser/.config/QtProject/Qml Runtime/simplest Checked in: /home/myuser/.config/QtProject/Qml Runtime /etc/xdg/QtProject/Qml Runtime
以下是一个示例 configuration.qml
文件。
以下是最简单的 ItemWrapper.qml
,容器属性可以指向。
创建这些文件后,您可以使用 qml -c
选项,提供包含 configuration.qml
文件的目录名称,指定容器对象的路径。
$ qml -c simplest mycomponent.qml
QML 运行时将直接设置 containedObject
属性,它必须具有该名称;一旦设置,项将被重新设置到窗口中并显示。由于此窗口是在 QML 中声明的,因此当您编写自己的包装窗口时,您可以自由添加任何额外的功能:以自定义的方式处理调整大小,或在原型设计期间添加可能有用的功能。
不管在 AppConfigLocation
中发现了什么,您还可以选择使用提供完整路径到 configuration.qml
文件的 qml -c
选项,并可以进一步指定容器对象的完整路径;因此,这些文件可以放置在任何地方。
除了可以在配置文件中声明的功能外,QML 工具还通过命令行选项提供了一些更多功能。使用 --help
选项获取最新的列表。