加载器大小取决于源
Loader size dependent on source
我正在使用 QML 开发一个消息对话框的小系统 windows。为此,我使用带有 Loader 的容器来加载不同的消息(这些消息不仅是文本,而且是布局的文本和图形符号,因此为每个单独的消息加载一个 QML 文件)。默认情况下,这些消息 windows 具有相同的大小,所以我直接在容器中有我的大小信息。但是有些消息可能会更长,因此我正在寻找一种方法来使用我加载的组件的 height
如果它超过默认值。
在我看来,我的问题可以分为三个部分:
- 如何根据其子项的尺寸设置容器大小?
- 如何通过我的
Loader
对象访问加载组件的大小信息?
- 如何有选择地使用较大的尺寸?
有什么建议吗?
这是一个未经测试的想法。取 child 首选高度的最大值或 hard-coded 最小值,以较大者为准。
Loader {
height: Math.max(item ? item.implicitHeight : 0, 200)
}
您可以使用 item keyword
访问加载的对象。
例如,如果您的加载程序 ID 是 idLoader
,那么创建的项目是 idLoader.item
,您有 2 个解决方案来执行您想要的操作:
1:如何通过我的加载器对象访问加载组件的大小信息?
Loader{
id:idLoader
width: (item !== null && typeof(item)!== 'undefined')? item.width : 0
height: (item !== null && typeof(item)!== 'undefined')? item.height: 0
}
2:如何根据子容器的尺寸设置容器的大小? & 如何有选择地使用较大的尺寸?
Loader{
id:idLoader
width: childrenRect.width
height : childrenRect.height
}
我正在使用 QML 开发一个消息对话框的小系统 windows。为此,我使用带有 Loader 的容器来加载不同的消息(这些消息不仅是文本,而且是布局的文本和图形符号,因此为每个单独的消息加载一个 QML 文件)。默认情况下,这些消息 windows 具有相同的大小,所以我直接在容器中有我的大小信息。但是有些消息可能会更长,因此我正在寻找一种方法来使用我加载的组件的 height
如果它超过默认值。
在我看来,我的问题可以分为三个部分:
- 如何根据其子项的尺寸设置容器大小?
- 如何通过我的
Loader
对象访问加载组件的大小信息? - 如何有选择地使用较大的尺寸?
有什么建议吗?
这是一个未经测试的想法。取 child 首选高度的最大值或 hard-coded 最小值,以较大者为准。
Loader {
height: Math.max(item ? item.implicitHeight : 0, 200)
}
您可以使用 item keyword
访问加载的对象。
例如,如果您的加载程序 ID 是 idLoader
,那么创建的项目是 idLoader.item
,您有 2 个解决方案来执行您想要的操作:
1:如何通过我的加载器对象访问加载组件的大小信息?
Loader{
id:idLoader
width: (item !== null && typeof(item)!== 'undefined')? item.width : 0
height: (item !== null && typeof(item)!== 'undefined')? item.height: 0
}
2:如何根据子容器的尺寸设置容器的大小? & 如何有选择地使用较大的尺寸?
Loader{
id:idLoader
width: childrenRect.width
height : childrenRect.height
}