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