Mám dve ListViews (výber a front), ktoré používajú rovnaký delegát.
Chcem prezentovať niektoré informácie o položkách odlišne medzi týmito dvoma zoznamami.
Ako zistím, v ktorej položke ListView je položka QML? V QML nie je prístup k žiadnej položke.
odpovede:
2 pre odpoveď č. 1Môžete použiť ListView.view
pripojený majetok ako folibis, ale je tu krajší spôsob. Ak presuniete delegáta do vlastného súboru QML, povedzme Delegate.qml
, môžete vytvoriť inštancie tohto typu, ktoré jednoducho nastavujú vlastnosť, ktorá mení ich vzhľad.
Napríklad:
ListView {
// ...
delegate: Delegate {
fancy: true
}
}
ListView {
// ...
delegate: Delegate {
fancy: false
}
}
Vy ste kód d Delegate
takým spôsobom, aby vedel, ako poskytnúť fantáziu / netypickú delegáciu. Napríklad:
Rectangle {
property bool fancy
color: fancy ? "steelblue" : "grey"
// ...
}