QML, dynamiquement ajouter des éléments à une liste
J'ai besoin d'aide avec l'ajout d'éléments dans un qml listview, j'ai un textarea et un bouton permettant d'ajouter le textarea du texte dans un élément de liste lorsque la touche est enfoncée, voici ma tentative:
Component {
id: delegate
Item {
width: 200; height: 28
Label {
text: score
}
}
}
ListView {
id: p1scores
model: p1model
delegate: delegate
anchors.top: p1name.bottom
anchors.topMargin: units.gu(1)
}
ListModel {
id: p1model
ListElement { score: "0" }
}
TextArea {
id: p1input
width: units.gu(8)
height: units.gu(3)
horizontalAlignment: TextEdit.AlignHCenter
inputMethodHints: Qt.ImhDigitsOnly
contentHeight: units.gu(60)
anchors.topMargin: units.gu(8)
}
Button {
id:p1button
text: i18n.tr("Add")
width: units.gu(8)
onClicked: {
p1model.append({"score": p1input.text})
p1input.text = ""
}
}
j'ai essayé d'ajouter, mais ne s'affiche dans la liste... toute aide?
- dans votre p1button onClicked, vous avez effacé le texte dans le TextArea avant d'ajouter le texte à la ListModel, bien sûr, le texte ne s'affichent pas.
- Le texte n'est toujours pas présente, je pense que c'est un problème avec le délégué... (édité à la question)
- Je ne suis pas sûr mais... changer votre
delegate
id de Composant à autre chose, parce que lorsque vous utilisezdelegate: delegate
dans votre Liste, il supposer, c'estdelegate: p1scores.delegate
, de sorte qu'il se lier à lui-même. - j'ai trouvé le problème, c'est que je n'ai pas spécifié de la hauteur de la listview et, apparemment, la valeur par défaut est la taille d'un seul élément...
InformationsquelleAutor Hairo | 2013-01-20
Vous devez vous connecter pour publier un commentaire.
Essayer sans les guillemets autour de "score", comme ceci: