wxPython adding/removing 控件在运行时到 ScrolledWindow
wxPython adding/removing controls during runtime to ScrolledWindow
我正在尝试 add/remove 多个项目到 ScrolledWindow in wxPython。
目前我有以下控制架构:
我想将 resultItem_panel
的多个实例添加到 result_scrolledWindow
。
当我这样做时,我首先必须通过用光标拖动它来手动缩放 window 来更新它,并 result_scrolledWindow
来显示滚动条。
我目前的代码:
def __addPublication(self, pub: Publication) -> None:
resultItem_panel = ResultItemPanel(self, pub)
# Add to parent sizer:
self.result_sizer.Add(resultItem_panel, 0, wx.ALL, 5)
self.Layout()
self.Parent.Fit()
# Store it so we later can Destroy() it again:
self.resultItemPanels.append(resultItem_panel)
def clearPublications(self) -> None:
for pub in self.resultItemPanels:
pub.Destroy()
self.resultItemPanels = []
self.Layout()
self.Parent.Fit()
我做错了什么?
正在替换:
self.Layout()
self.Parent.Fit()
与:
self.result_sizer.Layout()
self.PostSizeEvent()
对我有用。
参考:Phoenix (wxPython) #1221
我正在尝试 add/remove 多个项目到 ScrolledWindow in wxPython。
目前我有以下控制架构:
我想将 resultItem_panel
的多个实例添加到 result_scrolledWindow
。
当我这样做时,我首先必须通过用光标拖动它来手动缩放 window 来更新它,并 result_scrolledWindow
来显示滚动条。
我目前的代码:
def __addPublication(self, pub: Publication) -> None:
resultItem_panel = ResultItemPanel(self, pub)
# Add to parent sizer:
self.result_sizer.Add(resultItem_panel, 0, wx.ALL, 5)
self.Layout()
self.Parent.Fit()
# Store it so we later can Destroy() it again:
self.resultItemPanels.append(resultItem_panel)
def clearPublications(self) -> None:
for pub in self.resultItemPanels:
pub.Destroy()
self.resultItemPanels = []
self.Layout()
self.Parent.Fit()
我做错了什么?
正在替换:
self.Layout()
self.Parent.Fit()
与:
self.result_sizer.Layout()
self.PostSizeEvent()
对我有用。
参考:Phoenix (wxPython) #1221