新wxpython控件未显示直到调整大小

1 投票
1 回答
1229 浏览
提问于 2025-04-15 23:46

我在wxPython中创建了一个自定义控件(基于面板),这个控件可以在里面显示一系列自定义控件。用户需要能够随意添加行,并且这些行能够显示出来。但是,我在添加新控件后,发现它们并没有实际显示出来。我知道它们是存在的,因为在调整窗口大小后,或者在调用Show()之前添加它们时,它们会出现。我觉得这应该是个基本的问题,但我找不到错误在哪里。

添加功能的代码看起来是这样的:

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 个回答

3

试试用 self.Layout() 这个方法。

也可以试试 self.GetParent().Layout()

记得加上 Refresh()

其实用 Update() 是不太需要的。

撰写回答