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
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
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 :
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
1
2 void setHorizontalHeaderItem(int column, QStandardItem * item) void setHorizontalHeaderLabels(const QStringList & labels)
Ton code ressemblera alors à ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
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/
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(); }
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager