前言
本节我们将学习附加信号处理器。实际上,我们此前的学习中已经接触过了,Component就是其中之一。
一、什么是"附加信号处理器"(Attached Signal Handler)
- 它不是 由当前元素自身发出的信号,而是由另一个"附加类型"(Component、Keys、ListView ...)附加到当前元素后,再向当前元素发出的信号。
- 语法模板:
<AttachingType>.on<SignalName>: { ... }
例子:
Component.onCompleted: { }
Keys.onReturnPressed: { }
- 附加类型由 Qt 在解析 QML 时自动创建并绑定,我们只需写出处理器即可使用。
二、Component 这一附加类型提供的常用信号
completed()
------ 组件实例化完成后触发(类似构造函数)destruction()
------ 组件开始销毁 前触发(类似析构函数)
使用位置:任何继承自Item
的对象体内,写
Component.onCompleted: { }
Component.onDestruction: { }
三、代码实现
我们在上一节的工程中实现一下这两个信号的处理器。
cpp
Component.onCompleted: {
console.log("Starting up...")
}
Component.onDestruction: {
console.log("App is dying")
}
运行代码:
关闭窗口:
符合预期!
四、总结
既然Component涉及到构造和析构,你应该就知道它的意义。这将在组件完成加载和需要销毁时,给你提供业务代码入口。你可以在组建加载完毕后实现一些网络获取相关的功能,也可以在销毁时进行数据保存等等。
这将在之后的学习中经常用到哦。