SashLayoutWindow und Panels

Plattformunabhängige GUIs mit wxWidgets.
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

SashLayoutWindow und Panels

Beitragvon george » Donnerstag 18. Mai 2006, 12:28

Hey,

ich habe ein SashLayoutWindow und möchte in diesem, abhängig von der Usereingabe, verschiedene Panels darstellen.

Zum Beispiel selektiert der User "Device1", wird das Panel1 mit den Einstellparametern für das "Device1" dargestellt. Der Anwender kann dann die Parameter einstellen. Selektiert er "Device2" verschwindet das Panel1 und das Panel2 wird geladen indem er wiederum alle Parameter einstellen kann.
Selektiert der Anwender erneut den Eintrag "Device1", soll Panel2 verschwinden und das alte Panel1, mit den bereits eingetragenen Parametern, dargestellt werden.

Meine Frage ist, kann man die Panels einmal virtuell erzeugen und dann jeweils dem SashLayoutWindow zum Anzeigen übergeben??? Der reguläre Weg ist beim Erzeugen des Panels ist ja, dass man dem Panel-Konstruktor den Parent(in diesem Fall das SashLayoutWindow) mitgeben muss.
Ich suche aber einen Lösungsweg, mit dem man die Panels erzeugt und dann abhängig von der Usereingabe die Panels ins SashLayoutWindow bindet oder wieder freigibt.

Ich hoffe, dass mein Problem einigermaßen verständlich ist und ihr mir helfen könnt.
Danke

george
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Re: SashLayoutWindow und Panels

Beitragvon Francesco » Donnerstag 18. Mai 2006, 13:19

george hat geschrieben:Hey,

ich habe ein SashLayoutWindow und möchte in diesem, abhängig von der Usereingabe, verschiedene Panels darstellen.

Zum Beispiel selektiert der User "Device1", wird das Panel1 mit den Einstellparametern für das "Device1" dargestellt. Der Anwender kann dann die Parameter einstellen. Selektiert er "Device2" verschwindet das Panel1 und das Panel2 wird geladen indem er wiederum alle Parameter einstellen kann.
Selektiert der Anwender erneut den Eintrag "Device1", soll Panel2 verschwinden und das alte Panel1, mit den bereits eingetragenen Parametern, dargestellt werden.

Meine Frage ist, kann man die Panels einmal virtuell erzeugen und dann jeweils dem SashLayoutWindow zum Anzeigen übergeben??? Der reguläre Weg ist beim Erzeugen des Panels ist ja, dass man dem Panel-Konstruktor den Parent(in diesem Fall das SashLayoutWindow) mitgeben muss.
Ich suche aber einen Lösungsweg, mit dem man die Panels erzeugt und dann abhängig von der Usereingabe die Panels ins SashLayoutWindow bindet oder wieder freigibt.

Ich hoffe, dass mein Problem einigermaßen verständlich ist und ihr mir helfen könnt.
Danke

george


Hi, eine Frage:
Warum muss das ein SashLayoutWindow sein?
(ich kenne mich da auch nicht so aus, aber würde es ein SplitterWindow
nicht auch tun?)
Im linken ist dann dann die Listbox oder was auch immer, mit der du
die "Devices" auswählst und rechst schaltest du dann das aktive Panel
in den Vordergrund und versteckst das letzte Fenster mit .Hide() oder so.

Nur ein Gedanke.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Re: SashLayoutWindow und Panels

Beitragvon Francesco » Donnerstag 18. Mai 2006, 13:33

Vielleicht würde auch ein ListBook passen.
Im Demo unter Core Windows/Controls.

Da wird auch je nach Selektion ein anderes Panel aktiviert.
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Beitragvon george » Donnerstag 18. Mai 2006, 15:00

Hey Francesco,

habe mich für ein MultiSplitterWindow entschieden. Dort kann man über AppendWindow, InsertWindow, DetachWindow,... die Panels prima einfügen und wieder lösen.
Ich danke für deine Lösungshilfe.

thanks and greets
george
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Beitragvon Francesco » Donnerstag 18. Mai 2006, 15:04

george hat geschrieben:Hey Francesco,

habe mich für ein MultiSplitterWindow entschieden. Dort kann man über AppendWindow, InsertWindow, DetachWindow,... die Panels prima einfügen und wieder lösen.
Ich danke für deine Lösungshilfe.

thanks and greets
george


Bitte.

Ja, ist auch eine gute Idee.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder