产生 true/false 以控制可见性的复杂逻辑
Complex logic which produces true/false to control visibility
我有以下 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
}
}
我打算用一个复杂的逻辑来控制 ListView
上每一行的 visibility
。我的意思是,要设置 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
}
如何使用如此复杂的逻辑来控制 ListView
行的 visibility
?
我必须使用 Qt 5.9.4
如果您想要一个复杂的模型,请子类化 QAbstractListModel。在那里,您可以定义自己的可见性角色以及您需要的任何逻辑。或者将您的逻辑缩短为三元运算符。
我有以下 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
}
}
我打算用一个复杂的逻辑来控制 ListView
上每一行的 visibility
。我的意思是,要设置 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
}
如何使用如此复杂的逻辑来控制 ListView
行的 visibility
?
我必须使用 Qt 5.9.4
如果您想要一个复杂的模型,请子类化 QAbstractListModel。在那里,您可以定义自己的可见性角色以及您需要的任何逻辑。或者将您的逻辑缩短为三元运算符。