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 :

Layout

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 3
    Par défaut Layout
    Bonjour à tous !

    Je débute en programmation Qt et ce que je souhaite me paraît simple :
    J'ai créé un widget (ui et sa classe associée) que l'on appellera CustomWidget.
    J'ai une fenetre principale avec un pushbutton et un QVBoxLayout.
    Lorsque j'appui sur le pushbutton j'aimerais ajouter un "CustomWidget" à mon QVBoxLayout.

    J'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CustomWidget * monWidget = new CustomWidget();
    ui->monQVBoxLayout->addWidget(monWidget);
    Ceci fonctionne bien mais mes widgets sont répartis dans tout le QVBoxLayout à chaque ajout : Si j'ajoute par exemple 2 CustomWidget ceux ci occupent tout l'espace de mon layout.

    J'aimerai que chaque widget s'ajoute en dessous du précédent sans réorganiser les autres widgets. C'est à dire d'avoir une organisation type tableau où chaque ajout crée une nouvelle ligne à la fin du tableau.

    J'éspère avoir été clair.

    Je signale que j'ai lu la documentation sur les Layout. Si j'ai bien compris il faut que je regarde du côté des stretch mais mes essais sont restés sans succès.

    Merci à vous

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Tu peux associer à un widget un "strechFactor" à 0 pour indiquer qu'il ne doit pas être auto-agrandi. Ca se fait avec QBoxLayout::setStretchFactor(widget, 0) ou bien par le paramètre stretch de QBoxLayout::addWidget()

    Mais il faut aussi que tu aies un espace vide avec un stretch différent de zéro pour "absorber" l'espace non occupé de ton layout. Ca peut se faire avec QBoxLayout::addStretch(1) après avoir ajouté tes widgets.

    Ensuite pour insérer un nouveau widget il ne faut pas utiliser addWidget mais insertWidget en lui donnant comme index la position juste avant cet espace vide.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    layout->addWidget(w1, 0);
    layout->addWidget(w2, 0);
    layout->addStretch(1);
     
    // plus tard
    w3 = new widget(...);
    layout->insertWidget(2, w3, 0);

Discussions similaires

  1. [Layout-Date] Configuration par fichier
    Par Koko22 dans le forum Struts 1
    Réponses: 4
    Dernier message: 28/07/2004, 09h39
  2. JScrollPane non actif (layout)
    Par Oliveuh dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 21/07/2004, 10h50
  3. [struts]Documentation Struts-layout
    Par GreenJay dans le forum Struts 1
    Réponses: 5
    Dernier message: 14/06/2004, 11h51
  4. panel, layout et frame
    Par beLz dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 24/04/2004, 23h45
  5. [Débutant][swt][layout]
    Par Stessy dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 28/07/2003, 18h21

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