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

Discussion :

Comment modifier le titre des colonnes d'un QTreeView ?

  1. #1
    Membre actif
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Points : 232
    Points
    232
    Par défaut Comment modifier le titre des colonnes d'un QTreeView ?
    Bonjour,

    Quelqu'un saurait il comment je peux modifier le titre des colonnes d'un QTreeView? Actuellement, c'est un "1" qui est affiché en haut et je voudrais remplacer ce 1 par un titre.

    Merci

  2. #2
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Si tu as bien compris le principe du Model/View framework de Qt, tu sauras que ton QTreeView n'est qu'une coquille vide permettant d'afficher les données contenues dans ton modèle. Tu peux afficher le même modèle dans une QListView (1 seule colonne) ou une QTableView, seul l'apparence changera mais le modèle restera persistant.

    Tout ça pour en venir au fait que le nom de tes colonnes va être à modifier dans ton modèle.

    Si tu utilises une classe tel que QStandardModel tu peux utiliser les fonctions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void setHorizontalHeaderItem(int column, QStandardItem * item)
    void setHorizontalHeaderLabels(const QStringList & labels)
    sinon si tu as réaliser une sous classe d'un QAbstractModel (peut importe lequel), tu peux également redéfinir la fonction virtuel pure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    virtual QVariant headerData(int section, Qt::Orientation orientation, int role  = Qt::DisplayRole) const
    Ton code ressemblera alors à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    QVariant TableModel::headerData(int section, Qt::Orientation orientation, int role) const
    {
        if (role != Qt::DisplayRole)
            return QVariant();
     
        if (orientation == Qt::Horizontal) {
            switch (section) {
                case 0:
                    return tr("Colonne 1");
     
                case 1:
                    return tr("Colonne 2");
     
                default:
                    return QVariant();
            }
        }
        return QVariant();
    }
    En espérant avoir été le plus claire possible sur une partie de Qt qui est difficile à prendre en main. Voici ne page qui te sera fort utile pour la comprendre : http://qt.developpez.com/doc/4.6/mod...w-programming/

  3. #3
    Membre actif
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Points : 232
    Points
    232
    Par défaut
    Merci beaucoup Johnlamericain,
    c'est très clair.
    Effectivement, je savais que le QTreeView n'était qu'une vue et donc comme tu le dis très bien, une coquille vide. Mais n'étant pas très habitué à ce concept, je n'y avais plus pensé et je me suis laissé embarquer à chercher un moyen de changer le titre sur cette fameuse coquille vide, du coup je ne trouvais rien...Mais effectivement c'est bien logique, les titres sont des données.
    Merci pour tout.

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

Discussions similaires

  1. Modifier les titres des colonnes par vba
    Par jmde dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/12/2009, 17h26
  2. Comment fusionner les titres des colonnes d'un Jtable?
    Par briant dans le forum Composants
    Réponses: 2
    Dernier message: 17/12/2009, 19h40
  3. Réponses: 4
    Dernier message: 24/11/2005, 15h18
  4. [TDbGrid] Comment modifier la largeur des colonnes ?
    Par colorid dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/11/2005, 19h47
  5. Modifier le titre des colonnes d'une DBGrid
    Par deubal dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/11/2005, 18h15

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