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 :

Contrôler la position des widgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 179
    Par défaut Contrôler la position des widgets
    Bonjour tout le monde,

    je débute avec les interfaces graphiques en Qt, et je reste curieux de connaitre la logique du fonctionnement de celui-ci, en particulier les Layouts. j'ai lu que Qt propose 4 principaux layouts dites "Basiques" qui héritent de QLayout, à savoir (QBoxLayout/QGridLayout/QFormLayout/QStackedLayout), et c'est d'ici que vient mon problème.

    Je cherche un Layout qui "permet de fixer un élément graphique par rapport à un des bords de la fenêtre : top, bottom, right et left." Comme j'avais l'habitude de faire avec un AnchorPane dans JavaFx et j'ignore si Qt propose ce genre de Layout dans sa palette. Voici ce que j'ai pu trouver pour l'instant :

    -QGraphicsAnchorLayout(1)
    -QGraphicsAnchorLayout(2)

    Est-ce que ce widget est conçu pour ce genre de situation, ou y a t'il d'autres solutions qui répondent à la spécificité de ma recherche ? Merci pour vos réponses, et bien sûr toute critique est la bienvenue !

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    737
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 737
    Par défaut
    Bonjour.

    Tu peux ajouter un espace extensible (stretch), via les méthodes QBoxLayout::addStretch, QBoxLayout::insertStretch, QGridLayout::setRowStretch, ou bien QGridLayout::setColumnStretch.

    Ces espaces varieront leur taille lors d'un redimensionnement, ce qui fait que les autres widgets resteront comme ils sont.

  3. #3
    Membre confirmé
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 179
    Par défaut
    Salut,

    d'abord merci pour ta réponse, ta solution semble parfaite à l'exception d'un petit point très important, on ne peut altérer la logique sur laquelle est construit un Layout, par exemple un QVBoxLayout va classifier les widgets verticalement l'un par rapport à l'autre selon leur ordre d'ajout et ce quoi qu'on fasse, même chose pour le QHBoxLayout, c'est bien comme ça que ça marche n'est-ce pas ?

    Si c'est le cas, y a pas moyen de réaliser ce type de Layout, là où les widgets sont positionnés par rapport au conteneur (Top,Bottom,Right,Left) et non pas du contenu. Merci !

  4. #4
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    737
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 737
    Par défaut
    Bonjour.

    Citation Envoyé par guatto Voir le message
    un QVBoxLayout va classifier les widgets verticalement l'un par rapport à l'autre selon leur ordre d'ajout et ce quoi qu'on fasse, même chose pour le QHBoxLayout, c'est bien comme ça que ça marche n'est-ce pas ?
    C'est exactement ça.

    Si tu as besoin d'un comportement plus élaboré, tu vas devoir combiner les layouts et les espaces. Tu peux voir des tas d'exemples ici par exemple.

  5. #5
    Membre confirmé
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 179
    Par défaut
    Merci encore, avant de mettre le sujet en résolu j'aimerais juste poser une dernière question si ça ne vous embête pas de me répondre, est-ce possible de créer son propre Layout qui hérite de l'objet QLayout et qui aurait le comportement voulu ?

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2010
    Messages : 248
    Par défaut
    Bonjour,
    Oui, c'est possible, il y a même un exemple fourni par Qt: Flow Layout Example

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

Discussions similaires

  1. [web] [PerlTk] Position des fenêtres
    Par Cyspak dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 05/11/2004, 11h49
  2. [CrystalReports 8.5]Graphique 3D : position des étiquettes
    Par caubry dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 01/09/2004, 11h17
  3. DBGrid : enregister la position des colonnes
    Par Harry dans le forum Bases de données
    Réponses: 8
    Dernier message: 21/07/2004, 21h27
  4. Position des balises H2 ou comment les numéroter
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/07/2003, 19h24
  5. Changer dynamiquement la position des onglets
    Par ginnovy dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/09/2002, 18h24

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