代码之家  ›  专栏  ›  技术社区  ›  Megidd

产生真/假以控制可见性的复杂逻辑

  •  0
  • Megidd  · 技术社区  · 6 年前

    我有以下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: field,我喜欢这个复杂的逻辑:

    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
    }
    

    能见度 我的 列表视图 排?


    我必须使用Qt 5.9.4

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jan Win    6 年前

    如果您想要一个复杂的模型,可以将 QAbstractListModel . 在那里你可以定义你自己的角色的可见性和任何你需要的逻辑。或者将逻辑缩短为三元运算符。