나는 이것을 위해 wxpython-Phoenix 3.0.3 버전을 사용하고 있습니다.wxpython에서 GIF 애니메이션을 재생하는 동안 프레임을 어떻게 끌 수 있습니까?
저는 GIF 애니메이션을 재생할 수있는 드래그 가능한 이미지를 만들고 싶습니다. 애니메이션 부분을 주석 처리 할 때 함수가 제대로 작동하지만 애니메이션을 재생할 때 작동하지 않습니다. 어떻게 함께 사용할 수 있습니까?
import wx
from wx.adv import AnimationCtrl
class Yukari(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, -1, title)
self.Bind(wx.EVT_MOTION, self.OnMouse)
self.Bind(wx.EVT_CHAR_HOOK, self.closeWindow)
self.animation = AnimationCtrl(self)
self.animation.LoadFile('Resized_Yuzuki-Yukari.gif')
self.animation.Play()
self.SetSize((497, 720))
self.SetWindowStyle(wx.SIMPLE_BORDER | wx.STAY_ON_TOP)
self.Show()
def OnMouse(self, event):
if not event.Dragging():
self._dragPos = None
pass
if not self._dragPos:
self._dragPos = event.GetPosition()
else:
pos = event.GetPosition()
displacement = self._dragPos - pos
print(displacement)
self.SetPosition(self.GetPosition() - displacement)
def closeWindow(self, event):
key_code = event.GetKeyCode()
if key_code == wx.WXK_ESCAPE:
self.Destroy()
event.Skip()
app = wx.App()
frame = Yukari(None, -1, 'Yuzuki Yukari')
app.MainLoop()
첫째, 귀하의 답변에 감사드립니다. 불행히도 Phoenix 버전에서는 "wx.animate import AnimationCtrl"이 작동하지 않습니다. 그리고 드래그 가능한 이미지의 의미는 프레임 자체를 드래그 할 수 없다는 것입니다. 예, 조언 대신 프레임을 사용하여 패널을 사용해 보겠습니다! –