Flash Window crashed bei Tastendruck

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

Donnerstag 20. Dezember 2007, 07:19

Ja, das liebe Flash Fenster :)
Dachte, ich hätte irgendwas bei den Bindings falsch gemacht, aber das Flash Fenster verabschiedet sich bei jedem Tastendruck. Dabei sind Key-Bindings noch nicht mal definiert!?

Hab ich irgendwas übersehen ?
Grüße, Seven

Code: Alles auswählen

#!/usr/bin/env python 
# -*- coding: UTF-8 -*-

import wx
from wx.lib.flashwin import FlashWindow 


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) 
        self.Show() 
        
    
if __name__ == '__main__':
    app = wx.PySimpleApp()
    FF = FlashFrame() 
    app.MainLoop()
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 20. Dezember 2007, 07:26

snakeseven hat geschrieben:das Flash Fenster verabschiedet sich bei jedem Tastendruck.
Hallo snakeseven!

Ich kann an diesem Code nichts entdecken. Es funktioniert bei mir.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 20. Dezember 2007, 07:59

Moin Gerold,
vieleicht liegt es daran, dass ich es auf XP laufen habe? Werde es mal mit Ubuntu austesten.

Grüße, Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 20. Dezember 2007, 08:25

snakeseven hat geschrieben:vieleicht liegt es daran, dass ich es auf XP laufen habe? Werde es mal mit Ubuntu austesten.
Hallo Seven!

Ich habe auch XP laufen. Unter Ubuntu funktioniert das FlashWindow nicht, da es ja auf das Flash-ActiveX-Control aufbaut. Und ActiveX ist eine Windows-Technologie.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 20. Dezember 2007, 08:32

gerold hat geschrieben: Unter Ubuntu funktioniert das FlashWindow nicht, da es ja auf das Flash-ActiveX-Control aufbaut. Und ActiveX ist eine Windows-Technologie.
Ja, hat mich Ubuntu auch gerade dran erinnert. Vieleicht hat ja mein wxPython ne Macke? Es crashen bei Tastendruck auch die Beispielscripte aus dem Netz, die FlashWindow benutzen.

Grüße, Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 20. Dezember 2007, 08:39

snakeseven hat geschrieben:Vieleicht hat ja mein wxPython ne Macke? Es crashen bei Tastendruck auch die Beispielscripte aus dem Netz, die FlashWindow benutzen.
Hallo Seven!

Es muss der Flash-Player für den Internet Explorer installiert sein, auch wenn man den IE nicht benutzt.

Vielleicht probierst du es mal mit dem neuesten Player:
http://www.adobe.com/go/getflashplayer_de

An eine Macke deines wxPython glaube ich nicht. Es macht seit Jahren immer das Gleiche: Es holt sich das aktuell installierte Flash-Player-ActiveX-Control und leitet die Anweisungen an dieses weiter.

Wie macht sich dein Fehler genau bemerkbar?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 20. Dezember 2007, 08:52

gerold hat geschrieben:Wie macht sich dein Fehler genau bemerkbar?

Code: Alles auswählen

"pythonw.exe hat ein Problem festgestellt und muß beendet werden"
Nur bei Tastendruck. Dabei braucht mein Script keine Key-Events. Könnte ich die zur Not auch unterdrücken?

Grüße, Seven
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 20. Dezember 2007, 10:23

Wenn ich das Window nicht innerhalb eines Panels generiere klappts.
Allerdings darf ich das Panel auch nicht einfach weglassen, dann habe ich wieder das gleiche Problem, Crash bei Key-Event.
Warum das jetzt so ist, verstehe ich noch nicht, kenne mich aber mit Eventhandling auch noch nicht so gut aus.

Grüße,
Seven

Code: Alles auswählen

self.flash = FlashWindow(self, size = wx.Size(350, 320), style = wx.SUNKEN_BORDER)
statt:

Code: Alles auswählen

self.flash = FlashWindow(panel, style = wx.SUNKEN_BORDER)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 20. Dezember 2007, 11:32

Hallo Seven!

Dann spielen wir uns mal ein wenig.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import wx
from wx.lib.flashwin import FlashWindow


class FlashPanel(wx.Panel):
    
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.flash = FlashWindow(self, style = wx.SUNKEN_BORDER)
        self.Bind(wx.EVT_SIZE, self.on_size)
    
    
    def on_size(self, event = None):
        self.flash.SetSize(self.GetClientSize())
        event.Skip()


class FlashFrame(wx.Frame):
    def __init__(self, parent = None, title = "Flash Player", size = wx.Size(350, 320)):
        wx.Frame.__init__(self, parent, -1, title, size = size)
        panel = wx.Panel(self)
        vbox_main = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(vbox_main)
        self.flashpanel = FlashPanel(panel)
        self.flashpanel.flash.LoadMovie(
            0, "http://www.messe-ideen.de/upload/magische-zauberkugel.swf"
        )
        vbox_main.Add(self.flashpanel, 1, wx.EXPAND)
        self.Show()
       
   
if __name__ == '__main__':
    app = wx.PySimpleApp()
    FF = FlashFrame()
    app.MainLoop()
Funktioiert dieser Code bei dir?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Freitag 21. Dezember 2007, 12:33

Hallo Gerold,

Thanx für deinen Input!
Leider crashed auch das bei mir. Weiß der Kuckuck, was da sich nicht verträgt!? Python2.5 und wxPython2.8, kann es daran liegen?

Grüße, Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 21. Dezember 2007, 13:04

snakeseven hat geschrieben:Python2.5 und wxPython2.8, kann es daran liegen?
Hallo Seven!

Nein. Die Kombination Python 2.5 und wxPython 2.8 haben sehr viele Leute. So etwas würde sofort auffallen und in der wxPython-Mailingliste zur Sprache kommen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten