Problèmes avec les ListModel
Bonjour,
Voila, je suis en train d'essayer de développer une petite interface tactile, je découvre le QML et j'ai un soucis lié je pense au ListModel.
Voici mon code:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| import QtQuick 1.0
Rectangle
{
id: fenetre
width: 480;
height: 272;
color: "#232323";
Text
{
id: helloText;
text: "Hello World";
color: "#ffffff";
anchors.centerIn: parent;
}
ListModel
{
id: bouton_menu;
ListElement { name: "Menu 1"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 2"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 3"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 4"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 5"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 6"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 7"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
ListElement { name: "Menu 8"; type: Easing.Linear; fichier: "Z:/iCAN/Images et Logo/BOUTONS ICAN/headset.png"}
}
Component
{
id: delegate
Item
{
id: bouton_item;
height: (fenetre.height /10);
width: (fenetre.width / bouton_menu.count);
Rectangle
{
id: rect;
color: "#454545";
border.color: "White";
border.width: 1;
height: (fenetre.height / 10);
width: (fenetre.width / bouton_menu.count);
Image
{
id: image_menu;
anchors.centerIn: rect;
width: (fenetre.width/10);
height: (fenetre.height/10);
source: fichier;
}
Text
{
id: text_menu;
text:name;
y: 0
x:0
verticalAlignment: Text.AlignBottom
horizontalAlignment: Text.AlignHCenter
color: "White";
}
MouseArea
{
id: mouseArea
anchors.fill: rect;
onClicked:
{
if (rect.state == '')
{
rect.state = "close";
}
else
{
rect.state = '';
}
}
}
states : State
{
name: "close"; when: rect.ListView.activeFocus
PropertyChanges
{
target: rect;
y: 0-(rect.height-(rect.height/3))
}
}
transitions: Transition
{
NumberAnimation { properties: "y"; easing.type: type; duration: 200 }
}
}
}
}
Flickable
{
anchors.fill: parent
interactive: true
boundsBehavior: Flickable.StopAtBounds
flickableDirection: Flickable.HorizontalFlick
Row
{
id: layout
Repeater { id: menu_repete; model: bouton_menu; delegate: delegate }
}
}
} |
J'obtiens donc une fenetre grise avec mes boutons en haut, lorsque je clique dessus celui ci rentre ou sort.
Seulement je voudrais que lorsque je clique sur l'un des boutons, celui ci sorte et que les autres rentrent.
Est t'il possible de faire ce genre de chose en partant d'un ListModel, je trouve cette fonction tres pratique car je peut facilement rajouter ou supprimer des boutons.
De meme est t'il possible de pointer un objet précis, par exemple un truc du style bouton_menu.Menu1 pour selectionner le 1er bouton et uniquement celui ci?
Merci d'avance