你如何强制刷新wx.Panel?

Fry*_*Fry 9 python wxpython refresh panel

我正在尝试修改Panel的控件,让它更新,然后继续执行代码.问题似乎是Panel在刷新之前正在等待空闲.我当然尝试刷新以及GetSizer().Layout()甚至使用SendSizeEvent()方法向帧发送resize事件,但无济于事.我在这里不知所措,我发现很难相信没有办法强制重新绘制这个面板.以下是更改控件的代码:

def HideButtons(self):
        self.newButton.Show(False)
        self.openButton.Show(False)
        self.exitButton.Show(False)
        self.buttonSizer.Detach(self.newButton)
        self.buttonSizer.Detach(self.openButton)
        self.buttonSizer.Detach(self.exitButton)
        loadingLabel = wx.StaticText(self.splashImage, wx.ID_ANY, "Loading...", style=wx.ALIGN_LEFT)
        loadingLabel.SetBackgroundColour(wx.WHITE)
        self.buttonSizer.Add(loadingLabel)
        self.GetSizer().Layout()
        self.splashImage.Refresh()
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这样的事情?你是怎么解决的呢?

Ton*_*uža 13

你需要调用该Update方法.

  • `Update()`在我的情况下没有帮助(在`Panel`的`GridSizer`中的`StaticBitmap`),但文档说`Refresh()`会触发无条件的重绘 - 它后面跟着它`更新()` (3认同)