加载器大小取决于源

Loader size dependent on source

我正在使用 QML 开发一个消息对话框的小系统 windows。为此,我使用带有 Loader 的容器来加载不同的消息(这些消息不仅是文本,而且是布局的文本和图形符号,因此为每个单独的消息加载一个 QML 文件)。默认情况下,这些消息 windows 具有相同的大小,所以我直接在容器中有我的大小信息。但是有些消息可能会更长,因此我正在寻找一种方法来使用我加载的组件的 height 如果它超过默认值。 在我看来,我的问题可以分为三个部分:

有什么建议吗?

这是一个未经测试的想法。取 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
        }