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