Comment Ajouter des Données Dynamiques à une Table QML
Je suis en train d'ajouter des lignes à une table à partir de Python. Je suis à l'aide d'une TableView décrit avec QML.
Je ne peux pas comprendre comment ajouter un modèle à la table, sauf si le modèle est également en QML. Mais je ne peux pas comprendre comment ajouter des valeurs au modèle.
import sys
from PyQt5.QtCore import QAbstractTableModel, QObject, QUrl
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtQuick import QQuickView
from PyQt5.QtWidgets import QApplication
myApp = QApplication(sys.argv)
engine = QQmlApplicationEngine()
context = engine.rootContext()
context.setContextProperty("main", engine)
engine.load('users.qml')
mainWin = engine.rootObjects()[0]
# Add items
userTable = mainWin.findChild(QObject, "userTable")
tableModel = mainWin.findChild(QObject, "libraryModel")
tableModel.setData(tableModel.index(0), "one")
tableModel.setData(tableModel.index(1), "one")
mainWin.show()
sys.exit(myApp.exec_())
utilisateurs.qml
import QtQuick 2.3
import QtQuick.Controls 1.2
ApplicationWindow {
ListModel {
id: libraryModel
objectName: "libraryModel"
ListElement {
title: "A Masterpiece"
author: "Gabriel"
}
ListElement {
title: "Brilliance"
author: "Jens"
}
ListElement {
title: "Outstanding"
author: "Frederik"
}
}
TableView {
objectName: "userTable"
anchors.fill: parent
TableViewColumn {
role: "title"
title: "Title"
}
TableViewColumn {
role: "author"
title: "Author"
}
model: libraryModel
}
}
Modifier
tableModel.append({'author': 'one', 'title': 'two'})
builtins.TypeError: unable to convert argument 0 of
QAbstractListModel.append from 'dict' to 'QQmlV4Function*'
Pourquoi n'êtes-vous pas à l'aide de la méthode append de la
Voir la modifier
"Je ne peux pas comprendre comment ajouter un modèle à la table, sauf si le modèle est également en QML. Mais je ne peux pas comprendre comment ajouter des valeurs pour le modèle." Désolé, quoi? Quel est le type de modèle, où voulez-vous de les définir, et à partir de quel côté voulez-vous de les manipuler?
ListModel
Type? (doc.qt.io/qt-5/qml-qtqml-modèles-listmodel.html#ajout de la méthode)Voir la modifier
"Je ne peux pas comprendre comment ajouter un modèle à la table, sauf si le modèle est également en QML. Mais je ne peux pas comprendre comment ajouter des valeurs pour le modèle." Désolé, quoi? Quel est le type de modèle, où voulez-vous de les définir, et à partir de quel côté voulez-vous de les manipuler?
OriginalL'auteur Siecje | 2016-03-18
Vous devez vous connecter pour publier un commentaire.
Puisque personne n'a répondu à la question mais je vous suggère d'utiliser une solution de contournement:
Créer une fonction javascript dans qml avec deux arguments, et d'ajouter des éléments dans le tableau à droite de fichier QML.
(Évidemment, vous devez appeler la fonction à partir de python première, mais c'est un morceau de gâteau...)
P. S. Si tu veux montrer l'exemple laissez-moi savoir dans les commentaires :]
EDIT: code ajouté
maintenant le code python
Exemple a été ajouté, vous ne pouvez pas il suffit de copier coller l'exécuter, mais cela vous donnera une idée de comment le faire.
pouvez-vous montrer le code complet?
OriginalL'auteur Ford O.