Qt Quick 中的重要概念 - 便利类型

在高度动态的用户界面中,应用开发者通常会希望对事件做出反应,并触发各种响应逻辑。QML 通过绑定、信号和信号处理程序以及动态对象实例化等方式提供了对这些概念的内置支持,但 Qt Quick 通过各种便利类型进一步扩展了语言提供的支持。

动态对象实例化

QML 提供了多种动态创建和管理 QML 对象的方式。

对象可以通过各种方式在命令式 JavaScript 代码内部动态创建。有关更多信息,请参阅从 JavaScript 动态创建 QML 对象

Qt Quick 提供了LoaderRepeaterListViewGridViewPathView 类型,这些类型也支持动态对象管理,并提供声明式 API。

请参阅性能指南,了解如何使用动态实例化和懒加载来提高应用程序性能的更多信息。

动态绑定

属性绑定 是 QML 的一个基本特性。通常,属性初始化时与绑定相关联。然而,绑定 类型以及 Qt.binding() 函数允许客户端在运行时从任何对象动态绑定属性,并在需要时(或当它可用于时)修改绑定目标。

动态信号连接

通过信号的 connect() 方法,QML 支持动态信号连接。Qt Quick 模块提供了便利的 Connections 类型,允许设置涉及非静态对象层次结构对象的信号连接。它还允许在运行时动态重新指向连接,这允许应用程序根据程序状态处理不同的信号通知。

通过声明 Connections 实例,客户端可以动态地导致一个对象发出的信号触发另一个对象的函数,并在需要时(或当它可用于时)修改连接目标。

基于定时器的事件

另一种常见的用例是在特定事件发生一段时间后触发功能。在 Qt Quick 中,这些基于定时器的触发器通过Timer 类型得到支持。它既支持单次触发定时器,也支持重复定时器。

© 2024 The Qt Company Ltd。本文件中包含的文档贡献属于各自所有者的版权。本文件提供的文档根据GNU自由文档许可证第1.3版的条款许可,该许可证由自由软件基金会发布。Qt及其相关标志是The Qt Company Ltd.在芬兰以及其他全球国家的商标。所有其他商标均为其各自所有者的财产。