Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Redimensionner un QListWidget

size, resize, setGeometry, setWidth, setGeight, ...

    20 juin 2008 à 17:33:23

    Bonjour, en fait pour l'instant mon QListWidget à une taille par défaut, la largeur c'est celle de la fenêtre (calculé en fonction des widgets, j'ai rien définis, pour la hauteur pareil) et la hauteur je sais pas trop pourquoi elle est plus grandes que ma liste d'items. XD

    Je voulais donc redimensionner ma liste mais comme vous vous en doutez je n'y parviens pas. J'ai essayé tout ce que j'ai trouvé : size, resier, setWidth, setHeight, setGeometry j'ai aussi essayé ces méthodes sur les items mais rien ne fonctionne.

    Donc si vous avez un lien vers la bonne page de la doc je vous en serais très reconaissant. Comment sa vous avez rien à faire de ma reconnaissance ! :p

    [EDIT] Désolé pour le "setGeight" dans le titre, une faute de frappe mais je ne parviens pas à éditer le titre :-°
    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2008 à 17:59:08

      Citation : the angel

      et la hauteur je sais pas trop pourquoi elle est plus grandes que ma liste d'items. XD


      elle est aussi calculé automatiquement, donc si elle prend le plus de place possible.
      pour que setHeight marche, il faut ajouter un stretch avant ou après ton widget dans le layout.
      • Partager sur Facebook
      • Partager sur Twitter
        20 juin 2008 à 22:13:27

        Merci, en fait ce serait surtout la largeur que je voudrais modifier (bien qu'il soit intéressant de savoir comment faire pour la hauteur ^^).

        Voilà le code :

        //Attributs :
        		QSize attributTaille (500, 20);
        		QListWidgetItem *attribut1 = new QListWidgetItem ("Attribut 1");
        			//attribut1->setSizeHint (attributTaille);
        		QListWidgetItem *attribut2 = new QListWidgetItem ("Attribut 2");
        			//attribut2->setSizeHint (attributTaille);
        		QListWidgetItem *attribut3 = new QListWidgetItem ("Attribut 3");
        			//attribut3->setSizeHint (attributTaille);
        		QListWidgetItem *attribut4 = new QListWidgetItem ("Attribut 4");
        			//attribut4->setSizeHint (attributTaille);
        		QListWidgetItem *attribut5 = new QListWidgetItem ("Attribut 5");
        			//attribut5->setSizeHint (attributTaille);
        		
        		QListWidget *listeAttributs = new QListWidget;
        			listeAttributs->addStretch();
        			//listeAttributs->setWidth (100);
        			listeAttributs->setSelectionMode (QAbstractItemView::NoSelection);
        			listeAttributs->addItem (attribut1);
        			listeAttributs->addItem (attribut2);
        			listeAttributs->addItem (attribut3);
        			listeAttributs->addItem (attribut4);
        			listeAttributs->addItem (attribut5);
        		
        		QPushButton *ajouterAttribut = new QPushButton ("Ajouter un attribut");
        		QPushButton *supprimerAttribut = new QPushButton ("Supprimer un attribut");
        		
        		QGridLayout *attributGridLayout = new QGridLayout;
        			attributGridLayout->addWidget (listeAttributs, 0, 0, 2, 1);
        			attributGridLayout->addWidget (ajouterAttribut, 0, 1);
        			attributGridLayout->addWidget (supprimerAttribut, 1, 1);
        


        Le compilateur me dit que la classe QListWidget n'as pas de membre nomé addStretch.
        En regardant mieux le lien que tu m'as donnée je vois que c'est dans la partie des QBoxLayout, cela fonctionne-t-il aussi pour les QListWidget ?

        Merci d'avance XD
        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2008 à 22:57:09

          layout != widget !!!
          regarde la ligne "Inherited by" et j'ose espérer que tu comprendras de toi même.
          • Partager sur Facebook
          • Partager sur Twitter
            20 juin 2008 à 23:20:41

            Que QHBoxLayout et QVBoxLayout héritent de QBoxLayout je l'avais bien compris, qu'un layout soit différent d'un widget aussi.

            Si je comprends bien ce que tu veut dire c'est qu'il faut que je mettre mon QListWidget dans un layout, que je définisse le stretch sur ce layout pour que la taille de mon widget (ma liste) soit modifiée, et je peut ensuite modifier la taille de mon layout via setGeometry.
            Dites le si je m'égare ou si je m'enmele les pinceaux.

            Si je ne me trompe pas n'aurait-il pas été plus simple de me dire tout de suite que l'on ne peut pas modifier la taille d'un widget (ou tout du moins d'un QListWidget) ?

            Merci encore.
            • Partager sur Facebook
            • Partager sur Twitter
              20 juin 2008 à 23:43:04

              Citation : the angel

              Si je ne me trompe pas n'aurait-il pas été plus simple de me dire tout de suite que l'on ne peut pas modifier la taille d'un widget (ou tout du moins d'un QListWidget) ?


              si on pouvait pas ça serait vraiment naze.

              tu n'as juste pas compris ce que je voulais dire.
              voilà ce à quoi je faisais référence :
              ton_list_widget->setHeight(xxx);
              ton_vbox_layout->addWidget(ton_list_widget);
              ton_vbox_layout->addStretch();
              //...
              

              :)
              • Partager sur Facebook
              • Partager sur Twitter

              [Qt] Redimensionner un QListWidget

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown