我在wxPython中创建了一个自定义控件(基于面板),该控件在其中提供了面板上的自定义控件列表。用户需要能够随意添加行并显示这些行。添加新控件后,我很难让它们真正出现。我知道它们的存在是因为它们在调整框架大小之后出现,或者在框架上调用Show()
之前添加它们。我已经说服自己这是基本的东西,但是我找不到错误。
add函数如下所示:
def addRow(self, id, reference, page, title, note):
newRow = NoteListRow(self.listPanel, id, reference, page, title, note)
self.listSizer.Add(newRow, flag=wx.EXPAND | wx.LEFT)
self.rows.append(newRow)
if len(self.rows) == 1:
self.highliteRow(newRow)
self.Refresh()
self.Update()
return newRow
我假设我缺少有关刷新和更新的行为方式,因此即使对这些内容进行良好的扩展引用也可能会有所帮助。
最佳答案
尝试self.Layout()
尝试self.GetParent().Layout()
包括Refresh()
。Update()
不必要。
关于python - 调整大小后才会显示新的wxpython控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3011231/