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 :

Problème de redimensionnement de QWidget (avec QScrollArea) : ça déborde

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut Problème de redimensionnement de QWidget (avec QScrollArea) : ça déborde
    Bonjour,

    j'ai un comportement surprenant sur mon projet :
    j'ai l'architecture suivante (j'utilise QDesigner).
    QScrollArea
    - QWidget
    -QVLayout
    - myWidget hérité de QWidget
    - myWidget hérité de QWidget
    - myWidget hérité de QWidget
    - myWidget hérité de QWidget
    ....
    un nombre illimité de myWidget peut être ajouté ou supprimé via des boutons.

    Mon problème : les myWidget sont bien ajoutées mais certaines ne sont pas visibles (malgré le scrollbar, comme si il n'était pas présent (mais si j'étends ma fenêtre ils apparaissent bien en dessous des autres).
    Voici quelques images pour illustrer mon problème, il y a le même nombre d'éléments à gauche et à droite, j'ai juste agrandi ma MainFrame ...).

    le code pour ajouter un Widget est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TypeInfoWidgetUI *controllerInfo = new TypeInfoWidgetUI(...);
    this->listType->addWidget(controllerInfo);
    Le reste des info est via QDesigner, je ne sais pas si cela peut aider de le donner.

    Si quelqu'un à une piste, c'est la première fois que j'ai ce problème alors que je l'utilise ailleurs sans soucis

    Merci
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut
    J'ai essayé de réinitialiser avec un setLayout(...) et ça a résolu le problème de redimensionnement mais tout est maintenant super contracté : il ne respecte pas l'écart entre mes différentes myWidget qui se superpose ... pourtant je n'ai placé aucune limitation de taille max de mes QWidget associé au QScrollArea.

    Toujours personne avec un petit indice pour m'aider à avancer?

    Merci,

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut
    J'ai trouvé une solution... je ne suis pas persuadé que c'est la meilleur mais au moins j'ai mon problème de résolu :

    avec QT Designer, j'ai mis le paramètre de ma Q{H,V}BoxLayout layoutSizeConstraint à SetMinAndMaxSize
    et à chaque fois que j'ajoute un élément à mon Layout je le reset
    Widget->setLayout(...)

    Voila une solution qui marche

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut
    Ma solution ne me plaisait pas surtout qu'elle causait parfois des problemes sous linux ...
    et en regardant de plus pret les fichiers genere par QT a partir des fichier .ui j'ai enfin trouve pourquoi ca fonctionnait bizarrement!!!!

    Dans Qt Designer j'ai mis en place
    QScrollArea s
    ->QWidget w
    ->Q{V,H}BoxLayout box

    Et lorsque l'on genere le code, gentiment au lieu de faire w->setLayout(box)
    le generateur cree une nouvelle QWidget verticalLayoutWidget
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    verticalLayoutWidget = new QWidget(w);
            verticalLayoutWidget->setObjectName(QString::fromUtf8("verticalLayoutWidget"));
            verticalLayoutWidget->setGeometry(QRect(-1, -1, 261, 151));
            box = new QVBoxLayout(verticalLayoutWidget);
    Et je pense que le double niveau de QWidget n'etait pas bien interprete. J'ai donc supprimer mon Q{V,H}BoxLayout et je l'ai ajoute manuellement dans mon code (avec les bonnes propriete).
    Plus besoin de mettre des setLayout des qu'on ajoute un Widget ... ca fait du bien

    Voila maintenant on peut dire que j'ai vraiment resolu ce probleme, youpi!!!

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

Discussions similaires

  1. Problème de redimensionnement d'une form avec proportionnalité
    Par Basile le disciple dans le forum Débuter
    Réponses: 5
    Dernier message: 03/05/2013, 20h00
  2. Problème de redimensionnement d'image avec CSS
    Par redvivi dans le forum Débuter
    Réponses: 4
    Dernier message: 24/03/2008, 11h28
  3. Problème de déclaration de segment avec use32
    Par le mage tophinus dans le forum Assembleur
    Réponses: 2
    Dernier message: 10/01/2003, 10h17
  4. Réponses: 3
    Dernier message: 18/11/2002, 16h36
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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