gpt4 book ai didi

listview - QML ListView 过滤项目

转载 作者:行者123 更新时间:2023-12-04 11:51:33 25 4
gpt4 key购买 nike

我有一个 ListView 表。我想添加一些过滤器按钮来根据项目类型隐藏/显示该表的项目。最简单的方法是设置项目委托(delegate)的可见属性。但是,隐藏项仍然计入 listView.contentHeight 或 listView.visibleArea.heightRatio。结果,这些值在滚动时会发生变化并影响滚动条的高度和位置,它会无序折叠、展开、跳跃。

另一个问题是,在listView中,如果选择了一个项目,则无法知道它的索引,例如它看起来在表格中的第二位,但实际上它的索引更高,因为不可见的项目。如果根本不计算隐形元素可能会很好。

请帮助如何解决这个问题。谢谢你们。

ListView{
id: listView
delegate: itemdelegate
}

Component{
id: itemdelegate
Item{
visible: model.type === filteredType ? true: false
}
}

最佳答案

假设数据来自应用程序的 C++ 端,正确的做法是使用 Qt 的 QSortFilterProxyModel在你的模型上。

如果您还没有使用,这里是关于 using C++ Models with QML Views 的文档

关于listview - QML ListView 过滤项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25978484/

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