Les arbres peuvent être de trois types :
Un arbre vertical est un arbre dont la racine se situe tout en haut et au milieu de la vue. Les autres noeuds se positionnent en-dessous.
Un exemple d'abre vertical :
![]() |
Représentation d'un arbre vertical |
Comme nous pouvons le voir, un arbre peut être quelconque et n'est pas forcément binaire ou équilibré.
Voici le code source permettant de générer ce type d'arbre :
La strucuture d'un arbre horizontal est relativement semblable à celle d'un QTreeView à la dfférence que les enfants d'un noeud sont représentés sur le même niveau.
![]() |
Représentation d'un arbre horisontal |
Clint utilise un QStyledItemDelegate personnalisé afin d'afficher les items d'un arbre. Ce delegate, appelé TreeDelegate, possède six rendus prédéfinis ainsi que plusieurs méthodes permettant de définir la taille, les couleurs et les polices d'écriture.
Vous pouvez également appliquer votre propre delegate si celui-ci ne vous convient pas.
La forme des items est définie avec la méthode TreeDelegate::setItemShape. Voici la liste des valeurs possibles et un aperçu.
![]() |
![]() |
![]() |
![]() |
Tree::Rectangle | Tree::RoundedRectangle | Tree::Ellipse | Tree::Diamond |
Vous pouvez modifier la couleurs des items (fond, bordure et police d'écriture) ainsi que celle des liens entre les items grâce aux fonctions associées.
Clint met à disposition quelques couleurs prédéfinies en plus des couleurs prédéfinies de Qt.
|
|
|
|
|
|
Tree::Blue | Tree::DarkBlue | Tree::Green | Tree::DarkGreen | Tree::Purple | Tree::DarkPruple |
|
|
|
|
|
|
Tree::Orange | Tree::DarkOrange | Tree::Yellow | Tree::DarkYellow | Tree::Gray | Tree::DarkGray |