TaskBarIcon.CreatePopupMenu toetet mein Menue

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Donnerstag 10. Januar 2008, 00:29

Hallo mal wieder,

ich habe in meinem Programm ein fertiges Menu in der AppKlasse die von jedem Frame aus aufgerufen wird.
Wenn ich dieses Menu nun von der Methode "TaskBarIcon.CreatePopupMenu" zurueck geben lasse, wird es zerstoert... wie kann ich das verhindern?

Zur Verstaendlichkeit:

Code: Alles auswählen

class TaskBarIcon(wx.TaskBarIcon):
    #[...]
    def CreatePopupMenu(self):
        """
        This method is called by the base class when it needs to popup
        the menu for the default EVT_RIGHT_DOWN event.  Just create
        the menu how you want it and return it from this function,
        the base class takes care of the rest.
        """
        
        return app.menu

    #[...]
Das Menue wird in der App-Klasse (App.OnInit)erstellt und kann von ueberall per app.menu aufgerufen werden. Mit den Frames klappt das auch wunderbar.
Nach einmaliger (und bis dahin auch funktionierender) Benutzung des selben Menues durch das TaskBarIcon funktioniert das Menue nicht mehr.

Zur Fehlersuche ließ ich mir den Typ von app.menu ausgeben:
Als es funktionierte:

Code: Alles auswählen

<class 'wx._core.Menu'>
Nachdem ich es vom TrayIcon aufrufen ließ:

Code: Alles auswählen

<class 'wx._core._wxPyDeadObject'>
... bin ich gezwungen das Menue bei jedem Aufruf neu zu erzeugen? Oder sollte ich evtl den Event auf eine eigene Methode binden?

Danke fuer Hilfestellungen...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Donnerstag 10. Januar 2008, 09:13

nkoehring hat geschrieben:... bin ich gezwungen das Menue bei jedem Aufruf neu zu erzeugen?
Hallo nkoehring!

Gezwungen -- vielleicht nicht. Aber ich würde das Menü trotzdem einfach bei Bedarf neu erstellen. Frag mich nicht warum. Das ist nur so ein Gefühl.

lg
Gerold
:-)
[url]http://halvar.at[/url] | [url=http://halvar.at/elektronik/kleiner_bascom_avr_kurs/]Kleiner Bascom AVR Kurs[/url]
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Donnerstag 10. Januar 2008, 11:03

Danke... ich hab es jetzt auch so gemacht. In diesem Menue brauchte ich sowieo ein paar andere Eintraege ...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Donnerstag 10. Januar 2008, 18:42

Ich habe das bisher auch so gemacht. Alle Beispiele, die ich gesehen habe, ebenso, z.B.
MfG
HWK
Antworten