Wie kann ich von meiner Eventmethode aus ein Panel vom Fenster entfernen oder ändern?
Hallo, ich möchte ein Menü in meinen wxWidgets-Programm haben, in dem man zwischen verschiedenen Tabs switchen kann. Zum Beispiel: Home und Settings. Das soll passieren, wenn man eben auf die Knöpfe für das jeweilige Panel drückt. Wie mach ich das jetzt von meiner "void MainFrame::OnHomeClicked(wxCommand& evt){}" aus? Ich kann ja nicht auf die einzelnen Widgets zugreifen, oder? Wenn ich jetzt z.B. versuche das Panel mit MainFrame->RemoveChild(panelX); zu entfernen, wird es ja in Visual Studio ausgegraut. Wie funktioniert das? Ich bin relativ neu in wxWidgets. Mein bisheriges Kenntnis (was nicht viel ist), hab ich von YouTube erlernt.
Danke für eure Zeit!
2 Antworten
Für diese Anforderung gibt es schon eine vorgefertigte Komponente: Das wxNotebook.
Wie mach ich das jetzt von meiner (...)
Für diesen Implementationsweg könntest du die Panels über den Sizer aus- und einblenden, in dem sie liegen.
// Hide
sizer->Hide(yourPanel);
sizer->Layout();
// Show
sizer->Show(yourPanel);
sizer->Layout();
[GELÖST]
Antwort: Panel in Header-file anlegen, damit man von überall aus zugreifen kann. Dann einfach in der Eventmethode: Panel->RemoveChildren(Button //oder noch ein Panel); Panel->Refresh();