【发布时间】:2014-01-31 13:00:14
【问题描述】:
为了刷新我的 GUI,有时self.Refresh()、self.Layout() 不会产生我想要的结果。
唯一有效并真正刷新 GUI 的是:使用
手动触发wx.EVT_SIZE
s = self.GetSize()
self.SetSize((0,0))
self.SetSize(s)
有没有一种更清洁的方法来手动触发wx.EVT_SIZE?
【问题讨论】:
为了刷新我的 GUI,有时self.Refresh()、self.Layout() 不会产生我想要的结果。
唯一有效并真正刷新 GUI 的是:使用
手动触发wx.EVT_SIZE
s = self.GetSize()
self.SetSize((0,0))
self.SetSize(s)
有没有一种更清洁的方法来手动触发wx.EVT_SIZE?
【问题讨论】:
使用wxWindow::PostSizeEvent()。
但是请注意,如果您避免手动处理 wxEVT_SIZE(根据您的其他问题,您似乎正在这样做)并且只使用 sizers,那么简单的 Layout() 就足够了。
而且,FWIW,Refresh() 根本与大小无关,它只会导致重新绘制窗口,即可用于触发对您的 wxEVT_PAINT 的调用,而不是 wxEVT_SIZE,处理程序。
【讨论】:
wxpython里面是怎么叫的吗?