Seite 1 von 1

Panelinhalt abhängig vom Kontext

Verfasst: Donnerstag 15. März 2007, 19:30
von rayo
Hi

Ich hab auf der linken Seite ein TreeCtrl und auf der rechten ein Panel getrennt mit einem wx.SplitterWindow().

Jetzt ist das Panel noch leer, jedoch möchte ich, abhängig vom selektierten Item im TreeCtrl den ganzen Inhalt (alle Windows) auswechseln.

Damit soll dann z.B. bei einem Bild das Bild selber mit Höhe und Breite angezeigt werden.

Ich hab nun ein PicturePanel, ein AudioPanel, usw erstellt mit den benötigten Windows darin.

Wie kann ich nun im leeren Panel (rechts angezeigt) zuerst das PicturePanel anzeigen und dann wechseln auf das AudioPanel?

beim erstellen mach ich das:

Code: Alles auswählen

        self.wx['splitter1'].SplitVertically(self.wx['tree'],self.wx['right'])

        b = wx.BoxSizer(wx.VERTICAL)
        b.Add(self.wx['picture'], flag=wx.EXPAND)
        self.wx['right'].SetSizerAndFit(b)
beim wechseln:

Code: Alles auswählen

for child in self.parent.wx['right'].GetChildren():
                child.Hide() #alle Panels ausblenden
                if isinstance(child, PicturePanel):
                    child.Show()#das gewollte einblenden
Leider funktioniert das mit den Sizern nicht, die aktualisieren nicht richtig.

Gibts da eine saubere Lösung? oder gar ein Window, das genau dies macht?

Gruss

Verfasst: Donnerstag 15. März 2007, 19:53
von gerold
Hi rayo!

Vielleicht kannst du damit etwas anfangen: http://www.python-forum.de/topic-6480.html

mfg
Gerold
:-)

Verfasst: Freitag 16. März 2007, 14:14
von rayo
Hi gerold

Ja damit kann ich viel anfangen :)
So funktionierts, hatte das mit dem Sizer-Detach nicht gemacht.

Gruss