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

wxPython Discussion :

Rafraichissement de sizer lors d'ajout d'un noeud à un arbre


Sujet :

wxPython

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 8
    Par défaut Rafraichissement de sizer lors d'ajout d'un noeud à un arbre
    Bonjour,

    Je me suis mis récemment à python et wxpython, j'ai bidouillé un peu pour manipuler les sizers et fort du succès de mes premiers tests, je me lance dans la réalisation d'un arbre (voir les PJ).
    Le but est de créer un designer "light" de schémas XML, comme avec xmlspy.

    Voilà comment j'ai pensé la chose :
    • chaque noeud et ses descendants définissent une branche de l'arbre
    • chaque branche est définie par un panel qui contient 2 autres panels : un pour le noeud lui-même, un pour les descendants
    • un noeud et ses descendants sont dans un BoxSizer vertical
    • les descendants d'un même noeud (chaque descendant définissant une nouvelle branche) sont positionnés par un BoxSizer horizontal


    J'ajoute mes noeuds dans mon code et j'obtiens ce que vous pouvez voir sur la 1ère pièce jointe (arbre1.png) (les bordures bleu foncé sont autour des branches)
    Jusque là, tout va bien...

    Ensuite, ajout dynamique :
    • Je crée un nouveau panel pour la nouvelle branche, avec les deux panels imbriqués et le sizer vertical.
    • J'ajoute ce panel au sizer horizontal de l'élément parent
    • Dans le premier panel, je crée l'élément window qui définit le noeud (les blocs blancs sur les PJ)
    • Je ne mets rien dans le deuxième panel (normal, l'élément ajouté n'a pas encore d'enfants), mais je définis le sizer horizontal

    Je fais un test, par exemple j'ajoute un élément à la séquence en bas à gauche. Rien ne se passe, ou alors le noeud ajouté apparait partiellement. Si je redimensionne la fenêtre, tout se dessine correctement pour obtenir ce que vous pouvez voir sur la 2nd pièce jointe (arbre2.png).

    Je présume qu'il faut appeler la méthode Layout sur un des sizers, le problème c'est que je ne vois pas lequel. J'ai tenté sur le sizer horizontal dans lequel je viens d'ajouter l'élément, RAS. J'ai tenté sur le vertical associé à la branche, RAS. J'ai tenté un Refresh sur la frame, RAS.
    Faut-il faire un appel à Layout sur tous les sizers de l'arbre (ou au moins de la branche, jusqu'à la racine) ?
    S'il faut faire appel plusieurs fois à Layout, y a-t-il un ordre à respecter dans la hiérarchie des sizers ?
    Faut-il appeler une méthode qui m'est encore inconnue ?

    Merci pour votre attention
    J.
    Images attachées Images attachées   

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

Discussions similaires

  1. Probleme de taille d'un sizer lors de l'ajout d'objets
    Par Skiski dans le forum wxPython
    Réponses: 2
    Dernier message: 28/02/2010, 11h13
  2. Réponses: 2
    Dernier message: 04/12/2007, 18h35
  3. [ToolBar] Problème lors d'ajout/suppression de boutons
    Par joeln3 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/09/2007, 15h21
  4. Scroll qui remonte lors de l'ajout d'un noeud au body
    Par Sergejack dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/08/2006, 18h11
  5. Réponses: 6
    Dernier message: 19/06/2006, 09h38

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