Сложная логика, которая выдает истину / ложь для контроля видимости - PullRequest
0 голосов
/ 02 октября 2018

У меня есть следующий код 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

1 Ответ

0 голосов
/ 04 октября 2018

Если вы хотите сложную модель, подкласс QAbstractListModel .Там вы можете определить свою собственную роль для видимости и любую логику, которая вам нужна.В качестве альтернативы сократить вашу логику до троичного оператора.

...