IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Affichage d'un QAbstractTableModel dans une QListView


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut Affichage d'un QAbstractTableModel dans une QListView
    Bonjour,
    je fais quelques essais avec un petit programme. J'ai des données dans un modèle de table (QAbstractTableModel) et j'arrive à l'afficher dans une QTableView. Par contre rien ne s'affiche dans une QListView. J'ai ajouté un QSortFilterProxyModel entre le modèle et la vue selon les exemples fournis avec Qt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
        pProxyModel = new QSortFilterProxyModel(this);
        pProxyModel->setSourceModel(pModel); 
        listView->setModel(m_pProxyModel);
    ...
    J'obtiens alors l'affichage de la première colonne du modèle dans la vue automatiquement. Mais le problème est que je voudrais afficher la 4ème.... Je ne sais pas par où commencer, le proxy, le modèle?
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Bonsoir,
    Je me réponds, si jamais ça intéresse quelqu'un...

    Pour résumer, j'ai un modèle table (QAbstractTableModel) de 4 colonnes, à plat, je veux dire avec un seul parent pour tous les éléments. Automatiquement, toutes les colonnes s'affichent dans un QTableView (normal en même temps). Je veux afficher la 4ème colonne dans une QListView, qui si je ne fais rien, affiche la 1ère colonne. Je m'aide donc d'un objet (FilterModel) qui hérite de la classe QSortFilterProxyModel, que "j'intercale" entre le modèle et la vue ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        pProxyModel = new FilterModel(this);
        pProxyModel->setSourceModel(pModel);
        listView->setModel(pProxyModel);
    Ensuite, il y a 2 solutions qui fonctionnent. Soit on redéfinit la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    bool FilterModel::filterAcceptsColumn ( int SourceColumn, const QModelIndex & rSourceParent ) const
    {
    	if(SourceColumn == 3)
    	{
    		return true;
    	}
    	return false;
    }
    soit la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    QModelIndex FilterIndex::mapToSource ( const QModelIndex & rSourceIndex ) const
    {
    	return rSourceIndex.sibling(rSourceIndex.row(),3);
    }
    Pour la seconde, je suis surpris, j'ai d'abord essayé mapFromSource, ça me paraissait plus logique, mais non. D'ailleurs si quelqu'un a une explication détaillée de ceci, je suis toujours preneur.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage d'un champ dans une listbox
    Par BigZ444 dans le forum Bases de données
    Réponses: 5
    Dernier message: 22/04/2007, 18h23
  2. Affichage d'un vector dans une fonction
    Par jamesleouf dans le forum SL & STL
    Réponses: 1
    Dernier message: 16/03/2006, 19h05
  3. affichage de 2 décimales dans une zone de texte.
    Par tzinzin dans le forum Access
    Réponses: 7
    Dernier message: 09/02/2006, 16h41
  4. Affichage différent selon texte dans une case
    Par pingoo78 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 16h32
  5. Affichage d'un splitter dans une MDI
    Par SBP dans le forum MFC
    Réponses: 2
    Dernier message: 23/10/2005, 20h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo