Qt Quick 中的重要概念 - 便利类型¶
QML核心功能的便捷类型概述
在一个高度动态的用户界面中,应用程序开发者通常希望响应事件并触发各种响应逻辑。QML通过绑定、信号和信号处理器以及动态对象实例化内置了对这些概念的支持,但Qt Quick通过提供各种便利类型扩展了语言所提供的支持。
动态对象实例化¶
QML 提供了多种动态创建和管理 QML 对象的方法。
对象可以通过多种方式从命令式JavaScript代码中动态创建。有关更多详细信息,请参阅从JavaScript动态创建QML对象。
Qt Quick 提供了 Loader、Repeater、ListView、GridView 和 PathView 类型,这些类型也支持动态对象管理,并提供了声明式 API。
请参阅性能指南,了解更多关于使用动态实例化和延迟初始化来提高应用程序性能的信息。
动态绑定¶
属性绑定是QML的一个基本特性。通常,属性在初始化时会与其绑定。然而,Binding类型和Qt.binding()函数允许客户端在运行时动态绑定任何对象的属性,并在需要时(或当它变得可用时)修改绑定目标。
动态信号连接¶
QML 支持通过信号的 connect() 方法进行动态信号连接。Qt Quick 模块提供了方便的 Connections 类型,允许设置涉及不属于静态对象层次结构的对象的信号连接。它还允许在运行时动态重新定向连接,这使得应用程序能够根据程序状态使用不同的函数处理不同的信号通知。
通过声明一个Connections实例,客户端可以动态地使一个对象发出的信号触发另一个对象的方法,并且可以在需要时(或当目标可用时)修改连接目标。
基于计时器的事件¶
另一个常见的用例是在特定事件发生后的一段时间内触发功能。Qt Quick 通过 Timer 类型支持这种基于定时器的触发器。支持单次触发和重复触发的定时器。