Hallo Leute - danke für die Hinweise:
habe das Problem nun mit nem Workaround gelöst:
Idee: komplette FoldPanelBar zerstören und bei Beidarf komplett neu aufbauen
geg: eine Funktion configFoldPanel(...) die FoldPanelItems und alle zugehörigen Windows kreiert, und eine clear() Funktion, die alles bestehende vernichtet und eine neue leere FoldPanelBar erzeugt.
1) configFoldPanel(...) hat dann als ersten Aufruf clear()
2) clear sieht dann in etwa so aus:
Code: Alles auswählen
#zuerst zerstören
if self.m_FoldPanelBar is not None:
sizer.Remove(self.m_FoldPanelBar)
self.m_FoldPanelBar.Destroy()
self.m_FoldPanelBar = None
self.m_Window.Refresh()
#dann eine neue leere panelbar erzeugen
self.m_FoldPanelBar = nsFPB.FoldPanelBar(self.m_Window, -1, wx.DefaultPosition, wx.Size(-1, -1), nsFPB.FPB_DEFAULT_STYLE)
sizer.Add(self.m_FoldPanelBar, 0, wx.EXPAND | wx.ALL | wx.GROW, 0)
sizer.Layout()
self.m_FoldPanelBar.Destroy() reicht vollkommen aus, da die panelitems und windows alles Kinder und Kindeskinder sind - die werden alle automatisch zerstört.