2024-10-17 00:21:04 发布
网友
为了刷新我的GUI,有时self.Refresh(),self.Layout()不能产生我想要的结果。在
self.Refresh()
self.Layout()
唯一起作用并真正刷新GUI的是:手动触发wx.EVT_SIZE
wx.EVT_SIZE
s = self.GetSize() self.SetSize((0,0)) self.SetSize(s)
有没有一种清洁剂可以手动触发wx.EVT_SIZE?在
使用wxWindow::PostSizeEvent()。在
wxWindow::PostSizeEvent()
但是,请注意,如果您避免手动处理wxEVT_SIZE(这似乎是基于您的其他问题)而只使用sizer,那么简单的Layout()就足够了。在
wxEVT_SIZE
Layout()
而且,FWIW,Refresh()与大小完全无关,它只会导致重新绘制窗口,即可以用来触发对您的wxEVT_PAINT,而不是{},处理程序的调用。在
Refresh()
wxEVT_PAINT
使用
wxWindow::PostSizeEvent()
。在但是,请注意,如果您避免手动处理
wxEVT_SIZE
(这似乎是基于您的其他问题)而只使用sizer,那么简单的Layout()
就足够了。在而且,FWIW,},处理程序的调用。在
Refresh()
与大小完全无关,它只会导致重新绘制窗口,即可以用来触发对您的wxEVT_PAINT
,而不是{相关问题 更多 >
编程相关推荐