2012-03-05 12 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()をしなければならないことを認識しませんでした。ありがとう、これはおそらく私の問題を解決します。 –

関連する問題