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

wxWidgets Discussion :

wxBoxSizer dynamique probleme


Sujet :

wxWidgets

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut wxBoxSizer dynamique probleme
    Bonjour,

    Voilà : j'ai un wxFrame qui contient un wxPanel.
    Celui ci contient plusieurs wxPanel (donc je fixe la taille avec SetSize())
    Tout ces "sous panels" sont dans un wxBoxSizer.

    Maintenant : j'aimerai : quand je redimensionne la fenetre, que la taille des "sous panels" diminuent proportionnelement au redimensionnement

    J'ai donc mis un evenement sur le 1er wxPanel, quand il se redimensionne, il donne sa nouvelle taille aux sous panels qui recalculent et modifient leur taille (toujours avec SetSize).
    (En fait comme dans MovieMaker quand on diminue l'espace de montage )
    Attention, l'espace entre les sous panel doit rester le meme, donc pas de 1 dans le add

    Voici en pseudo code ce que je fais :
    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
     
     
    void Mon1erPanel::OnSize(.... evt)
    {
        GetSize(&longueur, &hauteur)
        pour chq sous panel:
            redimensionner(longueur, hauteur);
    }
     
     
    void SousPanel::redimesionner(longueur, hauteur)
    {
        si hauteur > HauteurMAX :
            hauteur = HauteurMAX
     
        SetSize(longueur, hauteur)
    }
    Le probleme c'est qui ne m'affiche pas comme il faut : au debut j'ai des tout petits carrés (de 20x20) quand je redimenssionne la fenetre, les carrés de bonnes tailles apparaissent mais son tout superposés puis redeviennent petit carré....
    Je me dis donc que cela vien du wxBoxSizer qui ne recalcule pas la position quand la taille des composant change....

    Qqu'un aurait il une solution ?

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Hmm, tu t'y prends pas de la bonne façon. Avec les sizers, pas besoin de la fonction OnSize().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Frame::Frame()
    {
        wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
        sizer->Add(new Panel(this, ...), 1, wxEXPAND);
        // ...
        sizer->Add(new Panel(this, ...), 1, wxEXPAND);
        SetSizer(sizer);
    }
    Et c'est tout ! Le "1" signifie que tous les panels aurons la même taille, le "wxEXPAND" signifie que les panels prendrons toute la place disponible, donc qu'ils se redimensionnerons en même temps que la fenêtre parente.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    merci pour ta reponse, mais non justement ce n'est pas ca que je veux.....

    Je montre un exemple, ca sera ptet plus comprehensible :

    au debut ma fenetre est comme ca :




    puis quand je redimensionne la fenetre : voilà ce que j'obtient :




    voilà là je n'ai que modifié la hauteur (ce que je veux) : on voit qu'il y a plus de panel qui ce sont affiché

    voilà j'espere que c'est plus clair ?

    merci de votre aide

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    j'ai rien compris c'est ce que tu veux faire ou c'est ce que tu as? est ce que tu peux partager tes sources?

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    up

    Quelqu'un a t'il deja reussi à utiliser des sizer dynamique ? c'est a dire si je change la taille d'un panel(avec SetSize(..) d'une case d'un wxGridBagSizer, ca redimenssionne le sizer (layout c'est que quand on ajoute/supp) et donc les scroll......etc! bref ca met bien à jour!!!

    merci

Discussions similaires

  1. Id html généré dynamiquement > probleme avec Javascript
    Par Aemaeth13 dans le forum Débuter
    Réponses: 5
    Dernier message: 14/07/2009, 08h49
  2. Tableau dynamique probleme
    Par G4uthier dans le forum C
    Réponses: 5
    Dernier message: 01/06/2009, 15h47
  3. CreateEmptyMovieClip dynamique, Probleme de création >.<
    Par kalote dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 13/05/2009, 12h10
  4. fetch d'un cursor dynamique probleme
    Par juin29 dans le forum Oracle
    Réponses: 1
    Dernier message: 24/11/2006, 07h17
  5. acces champs dynamique probleme
    Par coolstuff_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/05/2006, 17h58

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