Wie macht man Ebenen?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
STiGMaTa_ch
User
Beiträge: 32
Registriert: Sonntag 14. Mai 2006, 22:58
Wohnort: Rueti ZH, Schweiz

Samstag 19. April 2008, 14:06

Hallo zusammen

Eine simple Frage mit wahrscheinlich genau so simpler Antwort (wenn man sie denn weiss :mrgreen: )

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()
Lieber Gruss
STiGMaTa
EDV-Systeme verarbeiten, womit sie gefüttert werden. Kommt Mist rein, kommt Mist raus. (André Kostolany)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Samstag 19. April 2008, 15:17

STiGMaTa_ch hat geschrieben:Aber es will mir einfach nicht gelingen
Hallo STiGMaTa!

Ich will dir nicht den Spaß verderben, aber ich glaube nicht, dass das funktioniert. Zumindest nicht so einfach. Vielleicht mit viel Glück, Trickserei und Arbeit.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
STiGMaTa_ch
User
Beiträge: 32
Registriert: Sonntag 14. Mai 2006, 22:58
Wohnort: Rueti ZH, Schweiz

Samstag 19. April 2008, 17:05

gerold hat geschrieben:Vielleicht mit viel Glück, Trickserei und Arbeit.
Hmm... dann besinne ich mich doch lieber auf Faulheit :-) Ich habe jetzt einfach das Bild um 140 Pixel gekürzt und stelle jetzt zwei Panels nebeneinander dar. So geht es auch :-)

Lieber Gruss
STiGMaTa
EDV-Systeme verarbeiten, womit sie gefüttert werden. Kommt Mist rein, kommt Mist raus. (André Kostolany)
Antworten