Fenstergröße an Größe des Notebook-Panel anpassen
Verfasst: Mittwoch 30. März 2022, 06:33
Guten Morgen,
ich habe mit dem wxFormbuilder ein Fenster erstellt, welches ein Notebook enthält. Das Notebook wiederum besteht aus drei Panel. Die Panel wiederum sind unterschiedlich mit Textboxen, Labels, Schaltflächen, Spinnern etc. bestückt, sodass hier sehr unterschiedlich viel Platz bzw. Fenstergröße benötigt wird. Ein Panel z.B. 66 Textboxen und Anderes, ein anderes Panel nur 11 Textboxen. Für das größte Panel wird eine Größe von rund 1200 x 570 benötigt, die anderen Beiden sind entsprechend kleiner.
Da ich mich bei meinem Projekt auch mit Sizern beschäftigt habe enthalten Fenster, Notebook und Panel unterscheidliche Sizertypen. Auf dem Fenster befindet sich ein BoxSizer und eine Statusbar. In den BoxSizer habe ich das Notebook abgelegt.
Innerhalb des Notebooks wurden 3 Panel erstellt. Auf diesen Panels befinden sich, Panel1: Ein FlexGridSizer; auf den Panel 2 und 3 je ein GridBagSizer.
Mit dem GridBagSizer kam ich eigentlich am intuitivsten zurecht, weil der sich von der Vorstellung so ähnlich verhält wie Excel-Zellen. Also grob gesprochen. Man kann über Zeilen und Spalten positionieren und ggf. auch mal Zeilen oder Spalten zusammenfassen (wie Zellen verbinden in Excel) um z.B. eine Schaltfläche mittig unter zwei Textboxen zu positionieren. Aber das nur am Rand. Ich möchste dem gneigten Leser darstellen, dass ich mich schon daran versucht habe, mich mit Sizern auseienander zu setzen.
Wie bekomme ich es hin, dass sich die Fenstergröße an der Größe des jeweiligen Notebook-Panel orientiert? Momentan ist es so, dass sich das "Hauptfenster" der GUI am größten Panel orientiert und wenn man die Panel wechselt auf den anderen viel freie Fläche ist, die unnötigt Fensterfläche benötigt und einfach nur im Weg ist. Natürlich kann ich das Fenster an der Ecke anpacken und zusammenschieben, aber das ist auch jedesmal lästig. Ich hätte gerne, dass sich daß das Fenster nur immer so groß ist wie das aktuell aktive Notebook-Panel. Wie stelle ich das ein?
Vielen Dank für Hilfe
ich habe mit dem wxFormbuilder ein Fenster erstellt, welches ein Notebook enthält. Das Notebook wiederum besteht aus drei Panel. Die Panel wiederum sind unterschiedlich mit Textboxen, Labels, Schaltflächen, Spinnern etc. bestückt, sodass hier sehr unterschiedlich viel Platz bzw. Fenstergröße benötigt wird. Ein Panel z.B. 66 Textboxen und Anderes, ein anderes Panel nur 11 Textboxen. Für das größte Panel wird eine Größe von rund 1200 x 570 benötigt, die anderen Beiden sind entsprechend kleiner.
Da ich mich bei meinem Projekt auch mit Sizern beschäftigt habe enthalten Fenster, Notebook und Panel unterscheidliche Sizertypen. Auf dem Fenster befindet sich ein BoxSizer und eine Statusbar. In den BoxSizer habe ich das Notebook abgelegt.
Innerhalb des Notebooks wurden 3 Panel erstellt. Auf diesen Panels befinden sich, Panel1: Ein FlexGridSizer; auf den Panel 2 und 3 je ein GridBagSizer.
Mit dem GridBagSizer kam ich eigentlich am intuitivsten zurecht, weil der sich von der Vorstellung so ähnlich verhält wie Excel-Zellen. Also grob gesprochen. Man kann über Zeilen und Spalten positionieren und ggf. auch mal Zeilen oder Spalten zusammenfassen (wie Zellen verbinden in Excel) um z.B. eine Schaltfläche mittig unter zwei Textboxen zu positionieren. Aber das nur am Rand. Ich möchste dem gneigten Leser darstellen, dass ich mich schon daran versucht habe, mich mit Sizern auseienander zu setzen.
Wie bekomme ich es hin, dass sich die Fenstergröße an der Größe des jeweiligen Notebook-Panel orientiert? Momentan ist es so, dass sich das "Hauptfenster" der GUI am größten Panel orientiert und wenn man die Panel wechselt auf den anderen viel freie Fläche ist, die unnötigt Fensterfläche benötigt und einfach nur im Weg ist. Natürlich kann ich das Fenster an der Ecke anpacken und zusammenschieben, aber das ist auch jedesmal lästig. Ich hätte gerne, dass sich daß das Fenster nur immer so groß ist wie das aktuell aktive Notebook-Panel. Wie stelle ich das ein?
Vielen Dank für Hilfe