盛世清平~Qt quick学习笔记_10_还不理解的话
2018-01-25 15:43
211 查看
forwardTo 属性是列表类型,它表示传递按键事件给列表内的对象,如果某个对象 accept 了某个按键,那位列其后的对象就不会收到该按键事件。示例代码 "Keys.forwardTo: [moveText, likeQt];" 表明转发按键给 id 为 moveText 的 Text 对象和 id 为 likeQt 的 CheckBox 对象。 moveText
在前面,如果它消耗掉某个键, likeQt 就收不到了。你可以修改 Text 对象的 Keys.onPressed 附加信号处理器,在 case 列表中添加 Qt.Key_Space 看看效果。
嵌入式组件
你定义的组件是一个新的类型,它必须被实例化以后才可能显示。而要实例化一个嵌入在 qml 文档中定义的组件,则可以通过 Loader
单独文件中定义组件
BusyIndicator.qml 文件中的顶层 item 是 Control
,而我们使用时却是以 BusyIndicator 为组件名(类名)。这是我们定义 Component 时要遵守的一个约定:组件名字必须和 qml 文件名一致。组件名字的第一个字母必须是大写。对于在文件中定义一个组件,就这么简单了,再没有其它的特殊要求。
Qt Quick 提供的多数基本元素和特性,你都可以在定义组件时使用。
给颜色选择组件起个名字叫
ColorPicker ,对应的 qml 文件为 ColorPicker.qml ,那么你就可以在其它 QML 文档中使用 ColorPicker {...} 来定义 ColorPicker 的实例。--->类似于嵌入式的Loader的功能,对照来看。这里还有点问题没有解决
它和嵌入式定义有明显不同:
Component 对象不见咧!
详细介绍的Loader
Loader 可以使用其 source 属性加载一个 qml 文档
Loader 可以通过其 sourceComponent 属性加载一个 Component 对象。
当你需要延迟一些对象直到真正需要才创建它们时, Loader 非常有用。 当 Loader 的 source 或 sourceComponent 属性发生变化时,它之前加载的 Component 会自动销毁,新对象会被加载。将
source 设置为一个空字符串或将 sourceComponent 设置为 undefined ,将会销毁当前加载的对象,相关的资源也会被释放,而 Loader 对象则变成一个空对象。
对于 Loader 加载的 item ,它暴露出来的接口,如属性、信号等,都可以通过
Loader 的 item 属性来访问
Loader{
id: redLoader;
anchors.left: parent.left;
anchors.leftMargin: 4;
anchors.bottom: parent.bottom;
anchors.bottomMargin: 4;
sourceComponent: colorComponent; //使用 sourceComponent 属性来加载 id 为 colorComponent 的组件对象
onLoaded:{
item.color = "red";
//都可以通过 Loader 的 item 属性来访问
}
}
//对于信号的访问,我们则可以使用 Connections 对象
在前面,如果它消耗掉某个键, likeQt 就收不到了。你可以修改 Text 对象的 Keys.onPressed 附加信号处理器,在 case 列表中添加 Qt.Key_Space 看看效果。
嵌入式组件
你定义的组件是一个新的类型,它必须被实例化以后才可能显示。而要实例化一个嵌入在 qml 文档中定义的组件,则可以通过 Loader
单独文件中定义组件
BusyIndicator.qml 文件中的顶层 item 是 Control
,而我们使用时却是以 BusyIndicator 为组件名(类名)。这是我们定义 Component 时要遵守的一个约定:组件名字必须和 qml 文件名一致。组件名字的第一个字母必须是大写。对于在文件中定义一个组件,就这么简单了,再没有其它的特殊要求。
Qt Quick 提供的多数基本元素和特性,你都可以在定义组件时使用。
给颜色选择组件起个名字叫
ColorPicker ,对应的 qml 文件为 ColorPicker.qml ,那么你就可以在其它 QML 文档中使用 ColorPicker {...} 来定义 ColorPicker 的实例。--->类似于嵌入式的Loader的功能,对照来看。这里还有点问题没有解决
它和嵌入式定义有明显不同:
Component 对象不见咧!
详细介绍的Loader
Loader 可以使用其 source 属性加载一个 qml 文档
Loader 可以通过其 sourceComponent 属性加载一个 Component 对象。
当你需要延迟一些对象直到真正需要才创建它们时, Loader 非常有用。 当 Loader 的 source 或 sourceComponent 属性发生变化时,它之前加载的 Component 会自动销毁,新对象会被加载。将
source 设置为一个空字符串或将 sourceComponent 设置为 undefined ,将会销毁当前加载的对象,相关的资源也会被释放,而 Loader 对象则变成一个空对象。
对于 Loader 加载的 item ,它暴露出来的接口,如属性、信号等,都可以通过
Loader 的 item 属性来访问
Loader{
id: redLoader;
anchors.left: parent.left;
anchors.leftMargin: 4;
anchors.bottom: parent.bottom;
anchors.bottomMargin: 4;
sourceComponent: colorComponent; //使用 sourceComponent 属性来加载 id 为 colorComponent 的组件对象
onLoaded:{
item.color = "red";
//都可以通过 Loader 的 item 属性来访问
}
}
//对于信号的访问,我们则可以使用 Connections 对象
相关文章推荐
- 盛世清平~Qt quick学习笔记_17
- 盛世清平~Qt quick学习笔记_13
- 盛世清平~Qt quick学习笔记_16
- 盛世清平~Qt quick学习笔记_14_文件加载组件
- 盛世清平~Qt quick学习笔记_07
- 盛世清平~Qt quick学习笔记_08
- 盛世清平~Qt quick学习笔记_06
- 盛世清平~Qt quick学习笔记_15
- 盛世清平~Qt quick学习笔记_04
- 盛世清平~Qt quick学习笔记_05
- 盛世清平~Qt quick学习笔记_06
- 盛世清平~Qt quick学习笔记_12_遇见的问题
- 盛世清平~Qt quick学习笔记_11_遇见的问题
- 盛世清平~Qt quick学习笔记_18
- 盛世清平~Qt quick学习笔记_09
- 盛世清平~Qt quick学习笔记_02
- 盛世清平~Qt quick学习笔记_03
- IOS学习笔记10-UIView的一些基本方法理解:loadView、viewDidLoad、viewDidUnload、viewWillAppear、viewWillDisappear、
- opencv学习笔记10:机器学习
- java学习笔记-理解封装的概念