【发布时间】:2017-03-01 10:44:46
【问题描述】:
我有 2 个 qml 表格视图。当我单击第一个时,我从所选行中获取一个 id,然后我根据该 id 过滤第二个表。 在 qml 我这样做(伪代码):
TableView {
.....
onclick: {
var id = table1model.getid(currentIndex)
table2.model.clear
for(index in sourceModel) {
if (condition()) {
table2.model.append(index)
}//end if
}//end for
}//end onclick
}//end table1
TableView {
id: table2
....
}
问题是即使将一些项目添加到模型中,table2 中也不会显示任何内容。我可以将来自另一个模型的索引附加到模型(它们具有相同的结构,实际上 table2 模型是在上下文中注册的 sourceModel 的子集)?
【问题讨论】:
-
嗨,欢迎来到 StackOverflow。为了帮助我们帮助您,尽可能提供minimal, complete and verifiable example 非常重要。因此,请阅读链接文档,并以符合 mcve 要求的形式向我们提供您尝试过的代码(作为真正的 QML,而不是伪代码)。我看到,你花了很长时间来格式化代码,但使用推荐的方式更容易(甚至格式化更漂亮)。请参阅我的编辑或here,了解如何正确格式化。
-
谢谢。我将使用真实示例进行更新,但目前我的工作不在这台计算机上。基本上我的主要问题是是否可以从另一个模型附加到模型索引。
-
我建议对第二个视图使用过滤器代理模型,该模型根据第一个模型提供的标准进行过滤,或者让两个模型处理相同的数据,其中一个模型只显示子集。在这两种情况下,您的 QML 代码都不需要处理任何数据处理,只需将过滤条件传递给第二个模型