寻找更好的避免闪烁的方法(windows上的wxpython)
我确实发现父面板中的SetDoubleBufferedTrue可以修复闪烁的问题,主要是wx.StaticText,但它会降低整个UI的速度,尤其是在对列排序时ObjectListView元素的速度。因此,我搜索了一点,根据,去除wx的背景擦除。StaticText应该可以完成这项工作:寻找更好的避免闪烁的方法(windows上的wxpython),python,wxpython,Python,Wxpython,我确实发现父面板中的SetDoubleBufferedTrue可以修复闪烁的问题,主要是wx.StaticText,但它会降低整个UI的速度,尤其是在对列排序时ObjectListView元素的速度。因此,我搜索了一点,根据,去除wx的背景擦除。StaticText应该可以完成这项工作: class NoFlickeringTxtCtrl(wx.StaticText): def __init__(self, parent, id=-1, label="", pos=wx.DefaultP
class NoFlickeringTxtCtrl(wx.StaticText):
def __init__(self, parent, id=-1, label="", pos=wx.DefaultPosition,
size=wx.DefaultSize, style=0, name="staticText"):
wx.StaticText.__init__(self, parent, id, label, pos, size,
style, name)
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnErase)
def OnErase(self, evt):
evt.Skip()
但遗憾的是,它不起作用,所以我想知道有没有更好的方法来避免wx.StaticText闪烁?据我所知,您的代码没有摆脱背景擦除。要实现这一点,您必须替换evt.Skip旁路
如果这也不起作用,请尝试放弃StaticText的父面板的EVT_ERASE_背景。这有助于我在EVT_PAINT上绘制面板时避免闪烁。听到这个消息很抱歉。为了便于文档记录,您可以发布一个最小的运行示例吗?