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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 lignedans mon document QML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part XmlRole { name: "pubDate"; query: "pubDate/string()" }
Quelqu'un aurait-il une piste ?
D'avance merci.
J
Partager