Associer un XmlListModel et un ComboBox
:salut:
Je cherche à charger le contenu d'un ComboBox depuis un XML en utilisant XmlListModel.
Actuellement, je parviens à le faire si je ne définis qu'un seul XmlRole dans mon XmlListModel, mais ça perd un peu de son intérêt car je ne peux pas accéder au reste de mon document XML.
Voici mes codes exemples :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Window 2.0
import QtQuick.XmlListModel 2.0
ApplicationWindow {
title: qsTr("Test XML")
width: 300
height: 200
ComboBox{
id : combo
model:xmlModel
onCurrentIndexChanged: {
console.log(xmlModel)
label.text = xmlModel.get(currentIndex).titleXml
}
}
Label{
id : label
y : 50
text : 'aucune sélection'
}
XmlListModel {
id: xmlModel
source: "test.xml"
query: "/rss/channel/item"
XmlRole { name: "titleXml"; query: "title/string()" }
//XmlRole { name: "pubDate"; query: "pubDate/string()" }
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>A blog post</title>
<pubDate>Sat, 07 Sep 2010 10:00:01 GMT</pubDate>
</item>
<item>
<title>Another blog post</title>
<pubDate>Sat, 07 Sep 2010 15:35:01 GMT</pubDate>
</item>
</channel>
</rss> |
L'idée serait donc de pouvoir renseigner dans mon ComboBox toutes les noeuds title et m'en servir pour lire les autres noeuds en décommentant la ligne
Code:
XmlRole { name: "pubDate"; query: "pubDate/string()" }
dans mon document QML.
Quelqu'un aurait-il une piste ?
D'avance merci.
J