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 utilisez delegate: delegate dans votre Liste, il supposer, c'est delegate: 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