WxPython 无法正确呈现

WxPython not rendering correctly

我在从菜单项调用后创建了一个 WxPython 笔记本,但不幸的是它没有正确呈现(只能看到角落里的一个小蓝色形状)。我必须手动调整 window 的大小,它会像第二张图片一样弹回工作状态。

代码:

def load_notebook(self):
    panel = wx.Panel(self)
    sizer = wx.BoxSizer(wx.VERTICAL)
    notebook = apps.srp.main.Notebook(panel)
    sizer.Add(notebook, 1, wx.ALL | wx.EXPAND, 5)
    panel.SetSizer(sizer)

我尝试过的事情:

self.Layout()
self.Refresh()
self.Update()
notebook.Layout()
notebook.Refresh()
notebook.Update()

在主目录和笔记本和面板所在的文件夹中。

使用

所以经过一些调整和使用 Widget Inspection Tool 的提示后,确实是容纳笔记本的面板没有根据框架调整大小(假设默认大小我猜是 20x20 像素这是我看到的小蓝点)

解决方案是在添加notebook后添加以下内容:

    sizer_parent = wx.BoxSizer()
    sizer_parent.Add(panel, 1, wx.ALL | wx.EXPAND, 5)
    self.SetSizer(sizer_parent)
    self.Layout()

我遇到了同样的问题,如果 window 调整了大小,组合框只会进入它的位置,但发布的解决方案对我不起作用。我通过创建一个函数来解决这个问题,该函数只是为您调整 window 的大小:

def forceRefresh(self):
    self.SetSize((self.GetSize().width, self.GetSize().height+1))
    self.SetSize((self.GetSize().width, self.GetSize().height-1))

虽然不是最理想的,但它为我完成了技巧,所以希望它可以帮助其他人。