qml在flickable中放置多个rectangle并设置flickable的clip为true,将rectangle拖拽至flickable外,rectangle也能显示
时间: 2024-09-19 12:10:57 浏览: 34
在QtQuick中,`Flickable`是一个可滚动视图,它允许你在其内部进行拖动操作。如果你想在`Flickable`内放置多个矩形(`Rectangle`),并将`Flickable`的`clip`属性设为`true`,这意味着内容超出`Flickable`边界的部分会被剪裁隐藏。然而,如果你希望即使矩形被拖出`Flickable`范围也能显示出来,你需要稍微调整一下布局策略。
1. 首先,设置`Flickable`的`clip`为`false`,以便内容不会被剪裁:
```qml
Flickable {
clip: false
anchors.fill: parent
FlickableArea {
// 其他Flickable的相关配置...
}
}
```
2. 对于每个矩形,可以使用`ItemPositioner`来独立控制它们的位置,即使矩形超出`Flickable`范围:
```qml
Rectangle {
ItemPositioner {
property real position: flickable.width / 2 + item.x // 让矩形始终位于屏幕中心
anchors.right: parent.right
anchors.left: parent.left
anchors.bottom: parent.bottom
}
// 矩形样式和其他属性...
}
```
这里我们设置了矩形的位置基于`Flickable`的宽度,使其始终保持在可视区域的一部分。