mal wieder Eventhandling
Verfasst: Donnerstag 18. Mai 2006, 08:07
Hallo zusammen,
vor längerer Zeit habe ich schon mal hier eine ähnliche Frage gestellt, doch leider konnte si damals nicht gelöst werden.
Also:
Man stelle sich vor man hat 3 Dateien/Module zB a.py, b.py und c.py. a.py importiert b.py und benutzt alle in b.py vorhanden Klassen. b.py wiederrum importiert c.py dynamisch und benutzt alle darin vorhanden Klassen und übergibt self beim 1. Aufruf. Durch das übergebene self kann c.py eine Methode/Funktion zb OnC() in b.py auslösen. b.py wiederrum hat keine "Rückkopplung" zu a.py. a.py soll aber mitbekommen wenn diese Methode OnC() in b.py ausgelöst wird. Der logische Gedanke ist natürlich in der Methode OnC() ein Event auszulösen auf das a.py dann reagiert. Innerhalb einer Datei ist das auch kein Problem und man kann auch über mehrere Klassen zB win32event verwenden, da global definiert. Funktioniert leider nicht über mehrere Dateien - was mich etwas wundert weil is ja Windows Event. Erschwerend kommt noch hinzu, dass a.py b.py eigentlich nicht importiert, sondern b.py eine selbst geschriebene COM-Schnittstelle ist die in a.py per dispatch() eingebunden wird. Macht aber eigentlich keinen großen Unterschied.
Das einzige was ich bis jetzt Event-ähnlich hinbekommen habe ist, dass ich das SendKeys Modul verwendet habe und bei Auslösen der obigen Methode einen Tastendruck "F13" simuliere und in a.py dann ein Event OnKeyDown benutze.
Super wäre eine Lösung in der man mit dem Event noch eine Art Signatur senden kann - muss aber nicht.
Wäre super wenn da jemand Ahnung hätte und mir weiter hilft.
vor längerer Zeit habe ich schon mal hier eine ähnliche Frage gestellt, doch leider konnte si damals nicht gelöst werden.
Also:
Man stelle sich vor man hat 3 Dateien/Module zB a.py, b.py und c.py. a.py importiert b.py und benutzt alle in b.py vorhanden Klassen. b.py wiederrum importiert c.py dynamisch und benutzt alle darin vorhanden Klassen und übergibt self beim 1. Aufruf. Durch das übergebene self kann c.py eine Methode/Funktion zb OnC() in b.py auslösen. b.py wiederrum hat keine "Rückkopplung" zu a.py. a.py soll aber mitbekommen wenn diese Methode OnC() in b.py ausgelöst wird. Der logische Gedanke ist natürlich in der Methode OnC() ein Event auszulösen auf das a.py dann reagiert. Innerhalb einer Datei ist das auch kein Problem und man kann auch über mehrere Klassen zB win32event verwenden, da global definiert. Funktioniert leider nicht über mehrere Dateien - was mich etwas wundert weil is ja Windows Event. Erschwerend kommt noch hinzu, dass a.py b.py eigentlich nicht importiert, sondern b.py eine selbst geschriebene COM-Schnittstelle ist die in a.py per dispatch() eingebunden wird. Macht aber eigentlich keinen großen Unterschied.
Das einzige was ich bis jetzt Event-ähnlich hinbekommen habe ist, dass ich das SendKeys Modul verwendet habe und bei Auslösen der obigen Methode einen Tastendruck "F13" simuliere und in a.py dann ein Event OnKeyDown benutze.
Super wäre eine Lösung in der man mit dem Event noch eine Art Signatur senden kann - muss aber nicht.
Wäre super wenn da jemand Ahnung hätte und mir weiter hilft.