我有以下QML代码:
ListView {
model: ListModel {
ListElement {
eleText: "Me"
eleFirst: true
eleSecond: true
}
ListElement {
eleText: "My GF"
eleFirst: false
eleSecond: false
}
ListElement {
eleText: "Ben Dover"
eleFirst: true
eleSecond: false
}
}
delegate: Row {
visible: true
Label: eleText
}
}
我打算使用复杂的逻辑来控制visibility
上每一行的ListView
。我的意思是,要设置visible:
字段,我想拥有以下复杂的逻辑:
if( someObject.getStatus() == "first" ) {
if (eleFirst) {
return true;
} else {
return false;
} else if ( someObject.getStatus() == "second" ) {
if (eleSecond) {
return true;
} else {
return false;
}
} else {
// Should not get here
// throw errors
}
如何使用这种复杂的逻辑来控制visibility
行中的ListView
?
我必须使用Qt 5.9.4
答案 0 :(得分:1)
如果需要复杂的模型,请对QAbstractListModel进行子类化。在这里,您可以定义自己的角色来获得可见性以及所需的任何逻辑。或者,将您的逻辑缩短为三元运算符。