Eine simple Frage mit wahrscheinlich genau so simpler Antwort (wenn man sie denn weiss )
Ich würde gerne ein Frame mit zwei Ebenen machen. Die Hintergrundebene soll ein animiertes GIF wiedergeben, die Vordergrundebene soll einen Button (vorerst ohne Funktion) darstellen.
Aber es will mir einfach nicht gelingen
Wenn ich für das animierte Gif wie auch für den Button ein Panel mache und beide im Frame aufrufe, dann flackert für einen kurzen Moment der Button auf. Die restliche Zeit sieht man dann aber nur noch die Animation.
Ich vermute mal, dass ich den Button an einen Event binden muss. Nur weiss ich a) nicht welchen Event und b) was ich dann machen muss um den Button wieder nach "oben" zu bringen.
Hat mir vielleicht jemand einen Tipp?
Hier noch der Code:
Code: Alles auswählen
#!/usr/bin/env python
import wx
import wx.animate
class LureFrame(wx.Frame):
def __init__(self, Style):
wx.Frame.__init__(self, None, -1, "Lure of Temptress - Chooser", size=(640, 420), style=Style )
AnimPanel(self)
ButtonPanel(self)
class AnimPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, id=-1)
aGifName = "./bg.omg"
aGif = wx.animate.GIFAnimationCtrl(self, -1, aGifName)
aGif.Play()
self.Fit()
class ButtonPanel(wx.Panel):
def __init__(self, parent, id=-1):
wx.Panel.__init__(self, parent, id)
button = wx.Button(self, -1, "Hello", pos=(20,50))
self.Fit()
def main():
app = wx.PySimpleApp()
FrameStyle=wx.CAPTION | wx.SYSTEM_MENU | wx.MINIMIZE_BOX | wx.CLOSE_BOX
frame = LureFrame(FrameStyle)
frame.Show()
app.MainLoop()
if __name__ == '__main__':
main()
STiGMaTa