Qml 滚动时隐藏列表视图的突出显示
我正在为UI构建一个基于Qt Quick 2的Qt5应用程序。我在显示带有突出显示组件的ListView时遇到问题。当我滚动ListView时,高亮显示矩形在ListView外部可见,我无法找到避免它的方法 以下是最小QML文件的问题示例:Qml 滚动时隐藏列表视图的突出显示,qml,qt5,qtquick2,Qml,Qt5,Qtquick2,我正在为UI构建一个基于Qt Quick 2的Qt5应用程序。我在显示带有突出显示组件的ListView时遇到问题。当我滚动ListView时,高亮显示矩形在ListView外部可见,我无法找到避免它的方法 以下是最小QML文件的问题示例: import QtQuick 2.0 Rectangle { width: 360; height: 600 ListView { width: 350; height: 200 anchors.centerIn: paren
import QtQuick 2.0
Rectangle {
width: 360; height: 600
ListView {
width: 350; height: 200
anchors.centerIn: parent
id: myList
model: myModel
highlight: highlightBar
delegate: Item {
width: 400; height: 20
Text { text: name }
MouseArea {
id: mArea
anchors.fill: parent
onClicked: { myList.currentIndex = index; }
}
}
}
Component {
id: highlightBar
Rectangle {
width: parent.width; height: 20
color: "#FFFF88"
}
}
ListModel {
id: myModel
}
/* Fill the model with default values on startup */
Component.onCompleted: {
for(var i = 0; i < 100; i++) {
myModel.append({ name: "Big Animal : " + i});
}
}
}
导入QtQuick 2.0
长方形{
宽度:360;高度:600
列表视图{
宽度:350;高度:200
anchors.centerIn:父对象
id:myList
型号:myModel
推荐理由:highlightBar
代表:议程项目{
宽度:400;高度:20
Text{Text:name}
鼠耳{
id:mArea
锚定。填充:父级
onClicked:{myList.currentIndex=index;}
}
}
}
组成部分{
id:highlightBar
长方形{
宽度:父级。宽度;高度:20
颜色:“FFFF88”
}
}
列表模型{
id:myModel
}
/*启动时用默认值填充模型*/
Component.onCompleted:{
对于(变量i=0;i<100;i++){
追加({name:“大动物:”+i});
}
}
}
是否有办法将组件“限制”到其父边框或在滚动时隐藏突出显示组件?如以下报告所述:
注意:视图不自动启用剪辑。如果视图没有被另一个项目或屏幕剪裁,则需要设置clip:true才能很好地剪裁视图外的项目
因此,您所经历的是一种常见的行为,您应该1)通过其他项
s(例如页眉矩形
和页脚矩形
,使用z:infinite
,或简单地将clip
属性设置为true
,即
ListView{
//...
clip:true
//...
}
剪辑会对应用程序的发展产生很大影响。因此,应该仔细评估它的使用情况,尤其是在视图场景之外。现在看来很明显,但我花了一天时间尝试了尽可能多的属性,完全错过了这个属性,所以非常感谢!!@koopajah恰巧发生在我们之中:)只是一个建议:当您无法找到特定属性时,请尝试查看qml的
项元素。您很可能会找到它。默认情况下,此属性应为true
。因为这个,我浪费了2小时:(