在调整大小之前,新的wxpython控件不会显示

时间:2010-06-10 02:20:24

标签: python user-interface wxpython

我在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

我认为我遗漏了一些关于刷新和更新应该如何表现的事情,所以即使对这些内容进行良好的扩展引用也可能会有所帮助。

1 个答案:

答案 0 :(得分:3)

尝试self.Layout()

尝试self.GetParent().Layout()

包含Refresh()

Update()不是必需的。