首页 文章

如何确定委托QML项目所在的ListView?

提问于
浏览
0

我有两个ListViews(选择和队列),它们都使用相同的委托 .

我想在两个列表之间以不同的方式呈现一些项目信息 .

如何确定QML项目所在的ListView?我没有可以在QML中访问的item.parent .

1 回答

  • 2

    你可以使用 ListView.view 附加属性作为folibis提到,但有一个更好的方法 . 如果将委托移动到其自己的QML文件中,例如 Delegate.qml ,则可以创建该类型的实例,只需设置一个更改其外观的属性即可 .

    例如:

    ListView {
        // ...
        delegate: Delegate {
            fancy: true
        }
    }
    
    ListView {
        // ...
        delegate: Delegate {
            fancy: false
        }
    }
    

    你以这样的方式编码 Delegate ,它知道如何渲染一个奇特/非奇特的委托 . 例如:

    Rectangle {
        property bool fancy
    
        color: fancy ? "steelblue" : "grey"
        // ...
    }
    

相关问题