Danke für die Antwort, aber die Seite kannte ich schon und die hilft mir nicht wirklich viel weiter.
Also nochmal Problembeschreibung und hoffentlich kann mir jemand helfen:
Also ich habe 3 Dateien (Module) nennen wir sie data.py, hauptmodul.py und child.py
In hauptmodul.py wird ein MDI Window erzeugt (also eines in dem weitere Fenster gestartet werden können). child.py soll ein Modul sein, welches als Fenster in hauptmodul.py gestartet wird.
Folgende Situation:
Aus data.py wird ein string an hauptmodul.py gesendet. Dazu wird von data.py aus die Methode OnRecognition() in der Klasse Recognition von hauptmodul.py aufgerufen. Dieser String soll jedoch weiter gegeben werden an child.py. Nun könnte man natürlich child.py als aktives Child-Window ermitteln und in ihm eine Methode aufrufen und so den Wert übergeben. Das möchte ich jedoch nicht.
Ich habe mir gedacht, dass man doch sicher selbst ein Event erstellen kann (in hauptmodul.py) welches beim Modulaufruf von GetText() ausgelöst wird.
In child.py sollen dann mit GetEventHandler oder so alle Events von hauptmodul.py implementiert werden. Sollte doch eigentlich gehen oder?
Also an einer COM Schnittstelle geht das ohne Probleme mit win32com.client.getevents(...)
Was ich bis jetzt habe:
Code: Alles auswählen
...
#Event definieren
myEVT_SR_RECOGNITION = wx.NewEventType()
EVT_SR_RECOGNITION = wx.PyEventBinder(myEVT_SR_RECOGNITION, 1)
...
class Fenster(wx.MDIParentFrame):
#hier wird das Fenster erzeugt
...
class Recognition:
def __init__(self):
print "init COM_SR_REC"
....
def OnRecognition(self,text):
#Event initialisieren
start_event = SR_Recognition(0)
#Event setzen
do_event = self.GetEventHandler().ProcessEvent(start_event)
...
class SR_Recognition(wxPyCommandEvent):
def __init__(self, eventType=EVT_SR_RECOGNITION, id=0):
wxPyCommandEvent.__init__(self, eventType, id)
def Clone( self ):
self.__class__( self.GetId() )
also bis zum do_event scheint alles zu funktionieren, Probleme hab ich nun an den EventHandler ran zu kommen.
Wär super wenn jemand ne Idee hat