gpt4 book ai didi

qml - 滚动时隐藏 ListView 的突出显示

转载 作者:行者123 更新时间:2023-12-05 01:08:25 25 4
gpt4 key购买 nike

我正在为 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: 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});
}
}
}

有没有办法将组件“限制”到其父边框或在滚动时隐藏高亮组件?

最佳答案

documentation 报道:

Note: Views do not enable clip automatically. If the view is not clipped by another item or the screen, it will be necessary to set clip: true in order to have the out of view items clipped nicely.



因此,您遇到的是一种常见行为,您应该 1) 通过其他 Item 剪辑 View s(例如页眉 Rectangle 和页脚 Rectanglez:infinite 或简单地将 clip 属性设置为 true ,即
ListView{
//...
clip:true
//...
}

剪辑有一些 perfomance disavantages随着应用程序的增长,这会极大地影响应用程序。因此,应该仔细评估它的使用,尤其是在 View 场景之外。

关于qml - 滚动时隐藏 ListView 的突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17189042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com