如果我使用滑动 View ,我会遇到一些问题,并且我编写了以下代码:
import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Swipe View")
MainForm {
anchors.fill:parent
Rectangle{
id:rightRect
anchors.right:parent.right
width: parent.width*0.50
height:parent.height
color:"yellow"
}
Rectangle{
id:leftRect
width:parent.width*0.50
height:parent.height
color:"lightgreen"
border.color:"red"
anchors.right:rightRect.left
SwipeView{
id:swipeView
anchors.fill : leftRect
//Layout.fillWidth: true
currentIndex: 0
interactive: false
Page{
id:page1
Rectangle{
width:parent.width
height:parent.height
color:"lightgreen"
Button{
text:"move to 2"
onClicked: swipeView.currentIndex = 1
}
}
}
Page{
id:page2
Rectangle{
width:parent.width
height:parent.height
color:"lightblue"
Button{
text:"move to 1"
onClicked: swipeView.currentIndex = 0
}
}
}
}
}
}
}
以下是屏幕截图:
1) 最初我将当前索引设置为 “0” 但是索引“1”蓝色区域是可见的,它覆盖了正确的区域(黄色矩形):
2) 如果我点击 移至 2 按钮 然后黄色矩形按预期可见。
现在,即使我点击 移至 1 个按钮 我需要相同的行为,即黄色矩形应该一直可见。如何实现?
最佳答案
添加 clip:true
到您的 SwipeView 的父级,它会很好。
Rectangle{
id:leftRect
width:parent.width*0.50
height:parent.height
color:"lightgreen"
border.color:"red"
anchors.right:rightRect.left
clip:true //add this
SwipeView{
根据 Qt Documentation
If clipping is enabled, an item will clip its own painting, as well as the painting of its children, to its bounding rectangle.
默认情况下,此值为 false,因此您的
SwipeView
走出矩形区域。
关于qt - QML SwipeView 覆盖整个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45319828/