我在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
我认为我遗漏了一些关于刷新和更新应该如何表现的事情,所以即使对这些内容进行良好的扩展引用也可能会有所帮助。
答案 0 :(得分:3)
尝试self.Layout()
尝试self.GetParent().Layout()
包含Refresh()
。
Update()
不是必需的。