Probleme mit FlashWindow und 'Destroy'

Plattformunabhängige GUIs mit wxWidgets.
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Sonntag 9. Dezember 2007, 12:27

Hallo zusammen,
ich muß mein Flashwindow resetten. Dazu eliminiere ich es zunächst und generiere wieder ein neues. Leider funktioniert das so nicht. Die Methode 'Destroy' müßte mir laut Helpfile nach seiner Anwendung auf das Flashfenster eigendlich 'True' liefern, tut sie aber nicht. Destroy liefert immer 'True', egal wo ich sie aufrufe!? Gibt es eine andere Methode zu prüfen, ob das FW erfolgreich destroyed wurde? Habe das Ganze mal unten zusammengefaßt und würde mich über Hilfe freuen!

Grüße, Seven

P.S. das Auslösen des Resets habe ich über einen Thread simuliert

Code: Alles auswählen

#!/usr/bin/env python 
# -*- coding: iso-8859-1 -*- 

import wx,threading
from time import sleep
from wx.lib.flashwin import FlashWindow 

wx.SetDefaultPyEncoding("iso-8859-1") 

class FlashFrame(wx.Frame): 
    def __init__(self, parent = None, id = -1, title = "Flash Player", size = wx.Size(350, 320)): 
        wx.Frame.__init__(self, parent, id, title, size = size) 
        panel = wx.Panel(self) 
        vbox_main = wx.BoxSizer(wx.VERTICAL) 
        panel.SetSizer(vbox_main) 
        self.flash = FlashWindow(panel, style = wx.SUNKEN_BORDER) 
        vbox_main.Add(self.flash, 1, wx.ALL | wx.EXPAND, 10) 
        
def reset():
    global FF
    print FF.Destroy()
    FF.Destroy()
    sleep(1)
    print FF.Destroy()
    FF = FlashFrame() 
    FF.Show() 
    app.MainLoop()
    
def main():
    app.MainLoop()
    
if __name__ == '__main__':
    app = wx.PySimpleApp()
    FF = FlashFrame() 
    FF.Show() 
    T = threading.Timer(3, reset)
    T.start()
    main()

'''
Help on method Destroy in module wx._core:

Destroy(*args, **kwargs) method of __main__.PlayerFrame instance
    Destroy(self) -> bool
    
    Destroys the window safely.  Frames and dialogs are not destroyed
    immediately when this function is called -- they are added to a list
    of windows to be deleted on idle time, when all the window's events
    have been processed. This prevents problems with events being sent to
    non-existent windows.
    
    Returns True if the window has either been successfully deleted, or it
    has been added to the list of windows pending real deletion.
'''
Antworten