Bonjour,
Je me trouve bloqué dans la réalisation d'un exemple de Model/View Qt. En faite, j'utilise qt Creator et j'ai "dessiné" un tree view, une liste view et un tableView.
J'ai associé ces vues à un modèle (dans le constructeur de la MainWindow)
Ceci est le code de la méthode creerModele
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ui->listView->setModel(creerModele(this)); ui->treeView->setModel(creerModele(this)); ui->tableView->setModel(creerModele(this));
Ceci est le code de la méthode AjouterItem
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 QAbstractItemModel* MainWindow::creerModele(QObject *parent) { QStringListModel* stringModel = new QStringListModel(); stringModel->setHeaderData(0,Qt::Horizontal, QObject::tr("Pays"),Qt::DisplayRole); stringModel->setHeaderData(1,Qt::Horizontal, QObject::tr("Ville"),Qt::DisplayRole); stringModel->setHeaderData(2,Qt::Horizontal, QObject::tr("Sport"),Qt::DisplayRole); AjouterItem(stringModel, "France","Toulouse","Rugby"); return stringModel; }
Le problème: lors de l'exécution de l'application, la mainWindows Affiche seulement, dans la treeview et la table view, l'item "France" sans aucune autre indication (Dans la table view il y a une seule colonne intitulée 1).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void MainWindow::AjouterItem(QAbstractItemModel* i_model, const QString& i_sPays,const QString& i_sVille ,const QString& i_sSport) { i_model->insertRow(0); i_model->setData(i_model->index(0,0),i_sPays); i_model->setData(i_model->index(0,1),i_sVille); i_model->setData(i_model->index(0,2),i_sSport); }
Je vous serais très reconnaissant si vous m'aidez à trouver une solution.
Merci
Partager