我创建了一个带有自定义滚动条的列表视图。在列表视图中,滚动图像将由列表容器调整大小。滚动条的高度将更改取决于列表数据的大小。在我的情况下我想显示原始图片,其中srollbar的高度无法更改。然后打印出高度数据。这是我的代码,
ScrollBar {
id: bar
implicitHeight: 780 //the size of the original image
implicitWidth: 33
contentItem: Image {
id: sb
source:"1.png"
}
}
Keys.onPressed: { console.log(bar.implicitWidth)}
我使用 implicitHeight 来重置高度。它可以改变高度。 然而,当我将其设置为780(原始图像的高度)时,结果显示高度为560(高度取决于列表数据)。我需要将implicitHeight设置为大于780的值(如1000,我不知道如何计算准确值)。然后高度的结果将显示为780.为什么?
然后我尝试了这段代码,
ScrollBar {
id: ba
Component.onCompleted: console.log(bar.size)
contentItem:
Rectangle {
implicitWidth: 780
implicitHeight: 33
Image {
id: scrollBar
source:"1.png"
}
}
}
这次,结果显示高度为780!但是,我无法使用id访问
所以,我的问题是
答案 0 :(得分:0)
在ScrollBar
中,contentItem
会根据其长度需要管理的范围自动调整大小。如果它是水平滚动条,则implicitHeight
将成为contentItem的height
,并更改宽度,对于垂直滚动条,则相反。
在您的示例中,这是相同的。在这两种情况下,height
的{{1}}都会发生变化
但由于contentItem
的大小不是取决于其父级,在第二种情况下,它不会关心该父级的任何大小调整,并保持其隐式宽度和高度。
也许这个例子可以帮助你理解关系:
Image