【问题标题】:How to access properties of a nested container using ID如何使用 ID 访问嵌套容器的属性
【发布时间】:2014-09-22 22:54:06
【问题描述】:

我想在 ListItemComponent 范围之外访问 imageContainer 的属性,例如当方向改变时,我尝试了以下方法:

imageContainer.imageHeight 它在日志中返回一个未定义。

部分代码如下:

ListItemComponent {
                                type: "item"
                                Container {
                                    id: listContainer
                                    layout: DockLayout {
                                    }
                                    preferredWidth: 180
                                    preferredHeight: 180

                                    ActivityIndicator {
                                        verticalAlignment: VerticalAlignment.Center
                                        horizontalAlignment: HorizontalAlignment.Center
                                        id: myIndicator
                                        preferredWidth: 70
                                    }
                                    Container {
                                        id: webimageContainer
                                        verticalAlignment: VerticalAlignment.Center
                                        horizontalAlignment: HorizontalAlignment.Center
                                        preferredWidth: 200
                                        preferredHeight: 200
                                        ImageDownloader {
                                            id: imageContainer
                                            imageWidth: 170
                                            imageHeight: 170
                                            imageUrl: ListItemData.thumbnailPath
                                            onCloudImageUnavailable: {
                                                imageUrl = "asset:///images/ic_view_image.png";
                                            }
                                        }
                                    }
                                    onCreationCompleted: {
                                        if (parent.parent.dv_width == 720) {
                                            listContainer.preferredWidth = 160;
                                            listContainer.preferredHeight = 160;
                                        }
                                    }
                                }
                            }

提前致谢。

【问题讨论】:

  • id imageContainer 定义在哪里?
  • @rontornambe 定义在 ImageDownloader id: imageContainer
  • 我对 Containers 了解不多,但是您可以从 ListItemComnponent 中引用 imageContainer 吗?
  • 是的,我可以这样做,当尝试在 ListItemComnponent 之外使用它时会出现问题
  • 也许 Container.imageContainer 会起作用。

标签: javascript user-interface qml containers blackberry-10


【解决方案1】:

向根组件添加一个属性,在您的情况下为 ListItemComponent 以访问其嵌套项:

ListItemComponent {
    id: listItemComponent
    property int imageContainerHeight: imageContainer.imageHeight
    ....
    ImageDownloader {
        id: imageContainer
    }
    ...
}

因此您可以从外部访问此属性:

console.log(listItemComponent.imageContainerHeight);

【讨论】:

    猜你喜欢
    • 2019-12-13
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    相关资源
    最近更新 更多