Qml 使矩形宽度填充滚动视图
我试图在Qml 使矩形宽度填充滚动视图,qml,qt5,qtquick2,qtquickcontrols,Qml,Qt5,Qtquick2,Qtquickcontrols,我试图在滚动视图中获取一些内容,以便在宽度中展开以适应屏幕。滚动视图定位到主窗口 例如,矩形: ScrollView { anchors.fill: parent //mainWindow Rectangle { color: "light grey" height: 1000 width: mainWindow.width } } 但是,当垂直滚动条出现时,它会遮住矩形。我可以用一个神奇的常数来修正它: width: m
滚动视图
中获取一些内容,以便在宽度
中展开以适应屏幕。滚动视图
定位到主窗口
例如,矩形
:
ScrollView {
anchors.fill: parent //mainWindow
Rectangle {
color: "light grey"
height: 1000
width: mainWindow.width
}
}
但是,当垂直滚动条出现时,它会遮住矩形
。我可以用一个神奇的常数来修正它:
width: mainWindow.width - 20
但是如果有人的电脑上有更大的滚动条呢?当垂直滚动条不可见时,它会在右侧留下一个丑陋的空白
是否有一种方法可以自动了解
滚动视图中的可用空间?无需明确调整滚动条。您可以让它填满整个可用的父空间。如果要指定页边距:
ScrollView {
id: scrollView
anchors.fill: parent // mainWindow ?
anchors.centerIn: parent // anchoring as asked
anchors.margins: 20
contentItem:
Rectangle {
id: rectScroll
width: scrollView.viewport.width // set as viewport
height: 1000 // set to what you need
}
}
最初的问题之所以得以解决,主要是因为矩形的width
属性设置为parent.parent.width
或scrollView.viewport.width
,因为它更合适。后者肯定更好,只要滚动区域的宽度
,而不是父宽度
(通常不保证只包含此滚动视图
)