Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt : comment faire un resize automatique ?

si tant est que ce soit la bonne fonction...

Sujet résolu
    7 juin 2008 à 0:41:40

    Bonjour
    Je suis en train de créer une interface graphique avec Qt. Elle est constituée de boites qui changent de taille quand on appuie sur un bouton (elles "s'ouvrent" pour afficher du graphique ou se "ferment" pour le cacher).
    L'interet de mes boites est qu'on peut les mettres les uns dans les autres, ie on peut remplacer le graphique par une ou plusieurs boites, chacune pouvant s'ouvrir ou se fermer, etc... (le widget graphique est donc dans un conteneur, qui est celui qu'on affiche ou non, et on met les boites dans ce conteneur à la place du widget graphique)

    Mon probleme est le suivant:
    Je sais mettre le widget graphique à la bonne taille lorsque la taille du graphique change, mais je ne sais pas mettre à jour automatiquement la taille du conteneur : il s'agrandit automatiquement si besoin, mais ne rapetisse que si je demande explicitement au widget principal de se fermer, puis de se rouvrir
    Du coup le meme probleme apparait lorsque je remplace le widget graphique par des boites : lorsque je ferme les boites internes, la boite externe garde sa taille tant que je n'appuie pas sur le bouton pour le fermer et le rouvrir.

    (j'espere que l'organisation de mes boites est suffisamment clairement expliquée...)

    Ma question est donc: comment faire pour que, lorsque la taille des widgets internes diminue, celle du widget externe diminue elle aussi ?
    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2008 à 2:18:49

      hm essais la méthode adjustSize() (de QWidget), pour voir.
      • Partager sur Facebook
      • Partager sur Twitter
      Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
        8 juin 2008 à 19:05:51

        en fait j'ai déjà essayé, et il semblerait que le probleme vienne plutot du fait que je ne sais pas faire "remonter" l'information d'actualisation de la taille d'un QWidget au QWidget qui le contient...
        Parce que si j'appuie explicitement sur un bouton du QWidget principal, il s'actualise et se remet à la bonne taille...
        ==> comment faire "passer le message" de réactualisation ?
        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2008 à 21:34:48

          Citation : xenosender

          en fait j'ai déjà essayé, et il semblerait que le probleme vienne plutot du fait que je ne sais pas faire "remonter" l'information d'actualisation de la taille d'un QWidget au QWidget qui le contient...
          Parce que si j'appuie explicitement sur un bouton du QWidget principal, il s'actualise et se remet à la bonne taille...
          ==> comment faire "passer le message" de réactualisation ?

          essaye de passer un pointeur vers le QWidget principal dans les constructeurs des "boites" et de le stocker dans un attribut ( pour pouvoir l'utiliser pour faire un adjustSize )
          • Partager sur Facebook
          • Partager sur Twitter
            9 juin 2008 à 17:02:07

            Je viens d'essayer ça et ca ne marche pas, mais je pense que c'est la bonne voie, il doit falloir que je bidouille sur les MaximumSize, MinimumSize et SizePolicy des différentes boites et ça devrait finir par marcher... Merci !
            • Partager sur Facebook
            • Partager sur Twitter

            Qt : comment faire un resize automatique ?

            × 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