2012-03-05 210 views
3

我想使用wx-Python(2.7)來動畫gif。下面列出的代碼的作品,但我想創建一個函數,爲我動畫的GIF,所以我可以在其他地方使用它。我嘗試過搜索互聯網,但我只能找到在__init__函數內動畫gif的代碼。有任何想法嗎?在wxPython中動畫gif

# -*- coding: cp1252 -*- 
import wx 
import wx.animate 
class MyPanel(wx.Panel): 
    def __init__(self, parent, id): 
     wx.Panel.__init__(self, parent, id) 
     self.SetBackgroundColour("black") 
     gif_fname = "skYmk.gif" 
     gif = wx.animate.GIFAnimationCtrl(self, id, gif_fname, pos=(10, 10)) 
     gif.GetPlayer().UseBackgroundColour(True) 
     gif.Play() 
app = wx.PySimpleApp() 
frame = wx.Frame(None, -1, "wx.animate.GIFAnimationCtrl()", size = (200, 220)) 
MyPanel(frame, -1) 
frame.Show(True) 
app.MainLoop() 

回答

8

我不明白你的問題....做這樣的事情有什麼問題?

import wx 
import wx.animate 

class MyPanel(wx.Panel): 

    def __init__(self, parent, id): 

     wx.Panel.__init__(self, parent, id) 
     self.SetBackgroundColour("black") 
     gif_fname = "skYmk.gif" 
     gif = wx.animate.GIFAnimationCtrl(self, id, gif_fname, pos=(10, 10)) 
     gif.GetPlayer().UseBackgroundColour(True) 

     self.gif = gif 

    def CallMeLater(self, play=True): 

     if play: 
      self.gif.Play() 
     else: 
      self.gif.Stop() 

app = wx.PySimpleApp() 
frame = wx.Frame(None, -1, "wx.animate.GIFAnimationCtrl()", size = (200, 220)) 
MyPanel(frame, -1) 
frame.Show(True) 
app.MainLoop() 
+0

我不確定CallMeLater函數需要的參數,也沒有意識到我必須做self.gif.Play()。謝謝,這可能會解決我的問題。 – 2012-03-06 11:39:22