mephisto-online hat geschrieben:Irgendwas muss ich da wohl mit "static" machen. Aber wie ?
Welcher Gedanke bringt dich auf die Annahme?
Dein Problem ist eigentlich keines, denn das, was du versuchst, ist das schlichte Handling von mehreren Objekten gleichen Typs. Wenn du einen Integer deklariert hast, weist ihm dann 5 zu und deklarierst ihn danach neu ... welchen Wert mag er dann haben? Sicherlich nicht 5. Willst du die 5 nicht überschreiben, nimm eine andere Variable oder sichere sie dir in einer Liste. Bei Bedarf kannst du dann jederzeit die 5 aus der Liste entfernen.
Das Gleiche gilt dann für deine Widgets. Statt:
Code: Alles auswählen
self.single_graphics_3d_widget = DrawSingleGraphics3D(self.data_list[self.actual_base_data_set])
kannst du beispielsweise folgendes machen:
Code: Alles auswählen
self.single_graphics_3d_widgets.append(DrawSingleGraphics3D(self.data_list[self.actual_base_data_set]))
Voraussetzung ist natürlich, dass du die Liste vorher deklariert hast.
Unerwünschte Widgets/Elemente kannst du dann bei Bedarf aus der Liste schließen/entfernen. Alternativen zur Liste sind Dictionaries oder ein eigener, schlanker
WindowHandler, der Erzeugung, Management und Schließung der Widgets regelt. Letzteres ist aber vielleicht für den Zweck hier zu "advanced".