2014-07-04 2 views
0

Im пытается играть GIF изображение, которое я взятую из preloaders site, в моем кадре:Невозможно воспроизвести анимацию в WxPython

class TestFrame(wx.Frame): 

    def __init__(self, parent, id, title): 
     wx.Frame.__init__(self, parent, -1, title, style=wx.DEFAULT_FRAME_STYLE^wx.RESIZE_BORDER) 

     self.animation = wx.animate.AnimationCtrl(self, pos=(40,40), size=(24, 24), name="AnimationCtrl") 
     self.animation.LoadFile("./gui/icons/preloader.gif", wx.animate.ANIMATION_TYPE_GIF) 
     self.animation.Play() 

     size = (310, 150) 
     self.SetSize(size) 
     self.icon = wx.Icon('./gui/icons/app.ico', wx.BITMAP_TYPE_ICO) 
     self.SetIcon(self.icon) 
     self.Show() 

В результате больной будет видеть только все GIF (его внешний вид, как только импортированного изображения в Рамка). Что я делаю неправильно?

ответ

1

Я проверил ваш код, и он отлично работал на моем компьютере. У меня есть python 2.7 и wxPython 3.0. Если вы до сих пор не решена ваша проблема попытаться использовать этот код:

import wx.animate 

class TestFrame2(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__ (self, parent, id = wx.ID_ANY, title = u"Testing!", pos = wx.DefaultPosition, size = (300,300), style = wx.DEFAULT_FRAME_STYLE|wx.RESIZE_BORDER) 
     self.m_animCtrl1 = wx.animate.AnimationCtrl(self, wx.ID_ANY, wx.animate.NullAnimation, (40,40), (-1,-1), wx.animate.AC_DEFAULT_STYLE) 
     self.m_animCtrl1.LoadFile(u"img.GIF") 
     self.m_animCtrl1.Play() 
     self.Layout() 
     self.Show() 
     self.Centre(wx.BOTH) 

if __name__ == "__main__": 
    App = wx.App() 
    TestFrame2(None) 
    App.MainLoop() 
1

Я фактически использую Py3 и wxPython Phoenix, но этот код заставил меня работать для меня.

import wx 
from wx.adv import Animation, AnimationCtrl 

class TestFrame(wx.Frame): 

    def __init__(self, parent, id, title): 
     wx.Frame.__init__(self, parent, -1, title) 

     self.animation = AnimationCtrl(self, pos=(40,40), size=(24, 24), name="AnimationCtrl") 
     self.animation.LoadFile("animated.gif") 
     self.animation.Play() 

     size = (400, 400) 
     self.SetSize(size) 
     self.Show() 

app = wx.App() 
frame = TestFrame(None, -1, "Test gif") 
app.MainLoop() 

Для wxPython Я думаю, вам нужно использовать GIFAnimationCtrl вместо AnimationCtrl. У меня нет среды для тестирования. Here is the relevant documentation. Это, к сожалению, довольно редко.

Еще лучше Сообщение в блоге с примером. Это должно дать вам что-то, что нужно построить. http://www.daniweb.com/software-development/python/code/216673/wxpython-animated-gif

+0

Предпринимались ли окна Установщик выпустила для WxPython Phoenix? – user2963623

+0

Не то, чтобы я знал. Однако ночные сборки очень просты в установке. Просто перейдите на страницу http://wxpython.org/Phoenix/snapshot-builds/ и прокрутите вниз. Затем либо получите win32 для 32-битных систем, либо win_amd64 для 64-битных систем. Тогда я просто использовал pip для его установки. 'pip install name_of_file_you_downloaded.whl' –

Смежные вопросы