Notice: Undefined offset: 1 in /home/developpez/www/developpez-com/upload/qt/doc/redir.php on line 39 QGraphicsLinearLayout
Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QGraphicsLinearLayout

La classe QGraphicsLinearLayout fournit un layout horizontal ou vertical pour la gestion de widgets dans la vue graphique. Plus d'informations...

#include <QGraphicsLinearLayout>

Voir la position dans l'arbre des classes.

Héritage

Hérite de QGraphicsLayout.

La classe a été implémentée dans Qt 4.4.

Description détaillée

La classe QGraphicsLinearLayout fournit un layout horizontal ou vertical pour la gestion de widgets dans la vue graphique.

L'orientation par défaut pour un layout linéaire est Qt::Horizontal. Vous pouvez choisir une orientation verticale soit en appelant setOrientation() ou en passant Qt::Vertical au constructeur de QGraphicsLinearLayout.

L'utilisation la plus courante de QGraphicsLinearLayout est de construire un objet sur le tas sans parent, d'ajouter les widgets et layouts en appelant addItem() et finalement d'assigner le layout à un widget en appelant QGraphicsWidget::setLayout().

 QGraphicsScene scene;
 QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit);
 QGraphicsWidget *pushButton = scene.addWidget(new QPushButton);
 
 QGraphicsLinearLayout *layout = new QGraphicsLinearLayout;
 layout->addItem(textEdit);
 layout->addItem(pushButton);
 
 QGraphicsWidget *form = new QGraphicsWidget;
 form->setLayout(layout);
 scene.addItem(form);

Vous pouvez ajouter des widgets, layouts, élargissements (addStretch(), insertStretch() ou setStretchFactor()) et des espacements (setItemSpacing()) à un layout linéaire. Le layout prend la propriété des éléments. Dans la plupart des cas, lorsque l'élément layout hérite aussi de QGraphicsItem (comme le QGraphicsWidget), il y a une ambiguïté dans la possession, car l'élément layout appartient à deux hiérarchies. Reportez-vous à la documentation de QGraphicsLayoutItem::setOwnedByLayout() pour savoir comment gérer ce cas. Vous pouvez accéder à chaque élément dans le layout en appelant count() et itemAt(). L'appel à removeAt() ou à removeItem() va enlever un élément, sans le détruire.

Dimensions recommandées et politiques de taille dans QGraphicsLinearLayout

Le QGraphicsLinearLayout respecte toutes les dimensions recommandées et les politiques de dimensionnement des éléments et, lorsque le layout contient plus d'espace que la taille nécessaire par les éléments, chaque élément est réarrangé en suivant l'alignement du layout pour cet élément. Vous pouvez définir l'alignement pour chaque élément en appelant setAlignment() et vérifier l'alignement pour n'importe quel élément avec alignment(). Par défaut, les éléments sont alignés au coin supérieur gauche.

Espacements dans QGraphicsLinearLayout

Le layout répartit l?espace entre les items. L'espacement réel dépend du style courant du widget géré mais il est souvent de 4. Vous pouvez aussi définir votre propre espacement en appelant setSpacing() et récupérer la valeur courante en appelant spacing(). Si vous désirez configurer un espacement individuel pour vos éléments, vous pouvez appeler setItemSpacing().

Facteur d'élasticité dans QGraphicsLinearLayout

Vous pouvez assigner un facteur d'élasticité pour chaque élément pour contrôler l'espace qu'il va avoir en comparaison des autres éléments. Par défaut, deux widgets identiques arrangés dans un layout linéaire vont avoir la même taille mais si le premier a un facteur d'élasticité de 1 et que le second a un facteur de 2, alors le premier aura 1/3 de l'espace disponible contre 2/3 pour le second.

Le QGraphicsLinearLayout calcule la distribution des tailles en ajoutant les facteurs d'élasticité de tous les éléments puis en divisant l'espace disponible en conséquence. Le facteur d'élasticité par défaut est 0 pour tous les éléments ; un facteur de 0 signifie que l'élément n'a aucun facteur d'élasticité de défini ; en réalité, cela correspond à définir le facteur d'élasticité à 1. Le facteur d'élasticité s'applique uniquement à l'espace disponible dans la longueur du layout (selon son orientation). Si vous voulez contrôler les élargissements horizontalement et verticalement, vous pouvez utiliser QGraphicsGridLayout à la place.

QGraphicsLinearLayout comparé aux autres Layouts

QGraphicsLinearLayout est très similaire à QVBoxLayout et QHBoxLayout mais contrairement à ces classes, il gère des QGraphicsWidget et des QGraphicsLayout à la place de QWidget et de QLayout.

Voir aussi QGraphicsGridLayout et QGraphicsWidget.

Fonctions membres

QGraphicsLinearLayout::QGraphicsLinearLayout ( QGraphicsLayoutItem * parent = 0 )

Construit une instance de QGraphicsLinearLayout en utilisant une orientation Qt::Horizontal. parent est passé au constructeur du QGraphicsLayout.

QGraphicsLinearLayout::QGraphicsLinearLayout ( Qt::Orientation orientation, QGraphicsLayoutItem * parent = 0 )

Construit une instance de QGraphicsLinearLayout. Vous pouvez passer une orientation pour le layout, tant horizontale que verticale et parent est passé au constructeur du QGraphicsLayout.

QGraphicsLinearLayout::~QGraphicsLinearLayout () [virtual]

Détruit l'objet QGraphicsLinearLayout.

void QGraphicsLinearLayout::addItem ( QGraphicsLayoutItem * item )

Cette fonction de commodité équivaut à appeler insertItem(-1, item).

void QGraphicsLinearLayout::addStretch ( int stretch = 1 )

Cette fonction de commodité équivaut à appeler insertStretch(-1, stretch).

Qt::Alignment QGraphicsLinearLayout::alignment ( QGraphicsLayoutItem * item ) const

Retourne l'alignement pour l'élément item. L'alignement par défaut est Qt::AlignTop | Qt::AlignLeft.

L'alignement décide de la façon dont l'élément est positionné dans l'espace assigné s'il y a plus de place dans le layout que ce que le widget peut utiliser.

Voir aussi setAlignment().

int QGraphicsLinearLayout::count () const [virtual]

Réimplémentation de QGraphicsLayout::count().

void QGraphicsLinearLayout::insertItem ( int index, QGraphicsLayoutItem * item )

Insère l'élément item dans le layout à la position index ou avant s'il n'y a pas d'élément à la position index.

Voir aussi addItem(), itemAt(), insertStretch() et setItemSpacing().

void QGraphicsLinearLayout::insertStretch ( int index, int stretch = 1 )

Insère un élargissement de stretch à la position index ou avant s'il n'y a pas d'élément à la position index.

Voir aussi addStretch(), setStretchFactor(), setItemSpacing() et insertItem().

void QGraphicsLinearLayout::invalidate () [virtual]

Réimplémentation de QGraphicsLayout::invalidate().

QGraphicsLayoutItem * QGraphicsLinearLayout::itemAt ( int index ) const [virtual]

Réimplémentation de QGraphicsLayout::itemAt().

Lors du parcours à partir de 0, la fonction retourne les éléments dans l'ordre de l'arrangement visuel.

qreal QGraphicsLinearLayout::itemSpacing ( int index ) const

Retourne l'espacement après l'élément à la position index.

Voir aussi setItemSpacing().

Qt::Orientation QGraphicsLinearLayout::orientation () const

Retourne l'orientation du layout.

Voir aussi setOrientation().

void QGraphicsLinearLayout::removeAt ( int index ) [virtual]

Réimplementation de QGraphicsLayout::removeAt().

Enlève l'élément à la position index sans le détruire. L'appartenance de l'élément est transférée à l'appelant.

Voir aussi removeItem() et insertItem().

void QGraphicsLinearLayout::removeItem ( QGraphicsLayoutItem * item )

Enlève l'élément item du layout sans le détruire. L'appartenance de l'élément item est transférée à l'appelant.

Voir aussi removeAt() et insertItem().

void QGraphicsLinearLayout::setAlignment ( QGraphicsLayoutItem * item, Qt::Alignment alignment )

Définit l'alignement de l'élément item à alignment. Si l'alignement de l'élément item change, le layout va être automatiquement invalidé.

Voir aussi alignment() et invalidate().

void QGraphicsLinearLayout::setGeometry ( const QRectF & rect ) [virtual]

Réimplémentation de QGraphicsLayoutItem::setGeometry().

void QGraphicsLinearLayout::setItemSpacing ( int index, qreal spacing )

Définit l'espacement après l'élément à la position index à l'espacement spacing.

Voir aussi itemSpacing().

void QGraphicsLinearLayout::setOrientation ( Qt::Orientation orientation )

Change l'orientation du layout à orientation. Changer l'orientation du layout va invalider le layout.

Voir aussi orientation().

void QGraphicsLinearLayout::setSpacing ( qreal spacing )

Définit l'espacement du layout à spacing. L'espacement réfère aux distances verticales et horizontales entre les éléments.

Voir aussi spacing(), setItemSpacing(), setStretchFactor() et QGraphicsGridLayout::setSpacing().

void QGraphicsLinearLayout::setStretchFactor ( QGraphicsLayoutItem * item, int stretch )

Définit le facteur d'élasticité pour l'élément item au facteur stretch. Si le facteur d'élasticité d'un élément change, la fonction va invalider le layout.

Définir un facteur stretch à 0 retire le facteur d'élasticité pour l'élément et est aussi équivalent à le définir à 1.

Voir aussi stretchFactor().

QSizeF QGraphicsLinearLayout::sizeHint ( Qt::SizeHint which, const QSizeF & constraint = QSizeF() ) const [virtual]

Réimplementation de QGraphicsLayoutItem::sizeHint().

qreal QGraphicsLinearLayout::spacing () const

Retourne l'espacement du layout. L'espacement réfère aux distances verticales et horizontales entre les éléments.

Voir aussi setSpacing().

int QGraphicsLinearLayout::stretchFactor ( QGraphicsLayoutItem * item ) const

Retourne le facteur d'élasticité pour l'élément item. Par défaut le facteur d'élasticité est 0, désignant que l'élément n'a aucun facteur d'élasticité d'assigné.

Voir aussi setStretchFactor().

Remerciements

Merci à Alexandre Laurent pour la traduction ainsi qu'à Thibaut Cuvelier, Jonathan Courtois et Claude Leloup pour leur relecture !

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. Microsoft ouvre aux autres compilateurs C++ AMP, la spécification pour la conception d'applications parallèles C++ utilisant le GPU 22
  2. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  3. RIM : « 13 % des développeurs ont gagné plus de 100 000 $ sur l'AppWord », Qt et open-source au menu du BlackBerry DevCon Europe 0
  4. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 12
  5. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
Page suivante

Le Qt Developer Network au hasard

Logo

Compiler l'add-in Qt de Visual Studio

Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web