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 :

QGridLayout à l'intérieur d'un autre QGridLayout

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 80
    Par défaut QGridLayout à l'intérieur d'un autre QGridLayout
    Bonjour à tous,

    j'ai un petit souçi si quelqu'un peut m'aider s'il vous plait, merci.

    voici ce que j'aimerai faire : j'ai 2 QGridLayout, j'insère mon 2ème QGridLayout à l'intérieure du premier.Mon 2ème QGridLayout contient des images qui doivent être coller, c'est à dire pas d'espace vertical ni horizontal.

    en gros ça donne cela:
    Nom : resultat.png
Affichages : 274
Taille : 23,3 Ko

    le résultat que j'obtiens:

    Nom : qgridpane1.png
Affichages : 236
Taille : 9,5 Ko


    Voici mon code :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
         QGridLayout *layout = new QGridLayout();
     
         QGridLayout *temp = new QGridLayout();
         temp->setHorizontalSpacing(0);
         temp->setVerticalSpacing(0);
     
     
         QImage *myImage = new QImage();
          myImage->load("C:/Users/carre-blanc.jpg");
     
            QLabel *label = new QLabel();
            label->setPixmap(QPixmap::fromImage(*myImage));
     
           for(int i=0; i<5; i++) {
     
              for(int j=0; j<5;j++) {
     
     
                  QLabel *label = new QLabel();
                  label->setPixmap(QPixmap::fromImage(*myImage));
                  temp->addWidget(label,i,j);
     
              }
     
           }
     
      layout->addLayout(temp,0,0);
    Merci de m'aider s'il vous plait.,
    Ps:petit question y-a-t'il moyen de "traçer" les lignes et colonnes du QGridLayout genre
    une méthode du style SetLineVisible(true), j'ai cherché mais rien trouvé.

  2. #2
    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,

    Je pense qu'il faut utiliser QGridLayout::setRowStretch() ainsi que QGridLayout::setColumnStretch()

    Par contre il faudra sûrement ajouter une ligne et une colonne "vide" afin de remplir l'espace.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for(int i=0; i<5; i++) { 
        for(int j=0; j<5;j++) {
            QLabel *label = new QLabel();
            label->setPixmap(QPixmap::fromImage(*myImage));
            temp->addWidget(label,i,j);
        }    
    }
    temp->addWidget(new QLabel(), 0, 5, 1, -1);
    temp.setColumnStretch(5, 1);
    temp->addWidget(new QLabel(), 5, 0, -1, 1);
    temp.setRowStretch(5, 1);
    Par contre je ne comprend pas l'intérêt de l'imbrication de grid layout. Est-il prévu de mettre quelque chose dans le premier gridlayout (layout) ?

  3. #3
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Citation Envoyé par wear12 Voir le message
    Ps:petit question y-a-t'il moyen de "traçer" les lignes et colonnes du QGridLayout genre
    une méthode du style SetLineVisible(true), j'ai cherché mais rien trouvé.
    Non pas à ma connaissance, un layout est uniquement là pour agencer tes éléments dans l'espace qu'on lui donne.
    Au passage, ton résultat est normal puisque tu mets seulement un élément dans ton gridlayout de plus haut niveau, c'est une grille avec une seule case qui va prendre tout l'écran. Comme dit Gojir4, pourquoi veux-tu imbriquer les deux layouts ? Si tu cherches seulement à centrer le gridlayout avec les images dans la fenêtre il y a d'autres moyens (jouer avec des spacers en général, ou bien l'alignement et les sizePolicy).

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2008, 16h59
  2. Instance de classe à l'intérieur d'une autre
    Par cobolfingaz dans le forum C#
    Réponses: 12
    Dernier message: 17/01/2008, 11h25
  3. Réponses: 6
    Dernier message: 23/07/2007, 15h06
  4. Réponses: 2
    Dernier message: 16/02/2007, 18h49
  5. Réponses: 2
    Dernier message: 10/12/2004, 15h43

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