python显示图像序列_用wxpython实现非点击交互式图像序列显示

我创建了一个交互式图像序列查看器。只有在没有闪烁的情况下,查看器才会工作得几乎完美。我读了一些关于double buffering的文章,觉得有点混乱。我需要直接的解释/代码我应该做些什么来消除程序中的闪烁。在大多数示例中,都有调整大小的解释。我在另一方面不需要那个,我的窗户是大小固定的。那么我应该采取什么方法来修复闪烁呢?在

代码:import wx

class main_frame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, wx.ID_ANY, 'Main window', size=(1300, 750))

self.panel = wx.Panel(self, -1)

self.Centre()

#------------------------------------------------------------------------------

self.Frames = []

l=1

while l < 365:

self.Frames.append(wx.Image('images/{0}.png'.format(l), wx.BITMAP_TYPE_ANY))

print l

l+=1

self.slider = wx.Slider(self.panel, wx.ID_ANY, size = (500,-1))

self.slider.SetMax(356)

l = self.slider.GetValue()

self.image = wx.StaticBitmap(self.panel,-1,wx.BitmapFromImage(self.Frames[l]))

#------------------------------------------------------------------------------

self.sizer = wx.BoxSizer(wx.HORIZONTAL)

self.sizer_v = wx.BoxSizer(wx.VERTICAL)

self.sizer_v.Add(self.image, 0, wx.CENTRE | wx.ALL, 5)

self.sizer_v.Add(self.slider, 0, wx.CENTRE | wx.ALL, 5)

self.sizer.Add(self.sizer_v, 1, wx.EXPAND | wx.ALL | wx.CENTER, 5)

self.panel.SetSizer(self.sizer)

self.Bind(wx.EVT_SLIDER, self.OnSlider, self.slider)

def OnSlider(self,e):

l = self.slider.GetValue()

self.image.SetBitmap(wx.BitmapFromImage(self.Frames[l]))

if __name__ == '__main__':

app = wx.App()

frame = main_frame().Show()

app.MainLoop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值