Hallo
Ich habe ein Panel, in dem ein HtmlWindow und ein TextCtrl in einem vertikalen BoxSizer angeordnet sind. Der vertikale BoxSizer ist in einem horizontalen BoxSizer, der außerdem noch ein paar Buttons enthält.
Ich will dem Benutzer die Möglichkeit geben, wahlweise das TextCtrl ein- oder auszublenden (so dass sich das HtmlWindow über das gesamte Panel breit macht, der vertikale BoxSizer muss also auch weg). [Edit: er "muss" natürlich nicht weg, aber mit nur einem Element drin macht er wenig Sinn]
Ich habe mir ein paar Gedanken gemacht, bin mir aber nicht sicher, wie ich das umsetzen sollte.
Ideen:
1) das Panel ohne TextCtrl (und ohne vertikalem BoxSizer) als Klasse hinterlegen, und das Panel mit TextCtrl davon ableiten. Umständlich?
2) der Klasse noch einen weiteren Parameter übergeben (bool withTextCtrl) und das über ein If-Konstrukt lösen. Nicht sehr objektorientiert?
3) ...?
In beiden Fällen müsste ich das Panel neu zeichnen (wie geht das eigentlich?).
Wie macht man das möglichst pythonisch? Hat wx irgendwas vorgefertigtes dafür?
Dynamisches Panel umsetzen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo alan!alan hat geschrieben:Ich will dem Benutzer die Möglichkeit geben, wahlweise das TextCtrl ein- oder auszublenden (so dass sich das HtmlWindow über das gesamte Panel breit macht
Du kannst ein Widget während der Laufzeit jederzeit wieder aus einem Sizer raus nehmen und in einen anderen Sizer stecken.
Mit ``<sizer>.Detach()`` lässt sich das Widget raus nehmen.
Hier ein Beispiel das zumindest das Rausnehmen und das dynamische Erstellen demonstriert: http://www.python-forum.de/topic-10536.html
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.