Label von MenuItem in Callback-Funktion ändern
Verfasst: Freitag 21. September 2012, 14:54
Guten Tag,
ich arbeite mich gerade in die GUI Programmierung von Python ein. Genauer gesagt habe ich ein StatusIcon und Menu. In dem Menu befinden sich verschiedene MenuItems, welche ich unter anderem verändern möchte, wenn sie aktiviert wurden. Also definiere ich eine Funktion, welche aufgerufen werden soll, wenn besagtes MenuItem aktiviert wurde.
Der Funktion wird automatisch das Item übergeben, welches die Funktion ausgelöst hat. Mein erster Gedanke ist also, einfach das Label des übergebenen MenuItems ändern:
Funktioniert leider nicht, obwohl item ja nur eine Referenz auf das eigentliche MenuItem ist, oder?
Zweiter Anlauf: Eine Klassenweite Variable.
Und in der Callback-Funktion:
Leider bin ich wohl total auf dem Holzweg. Wenn ich den Befehl .set_text() in der Funktion build_menu aufrufe funktionierts übrigens. Wie ändert man also das Label eines MenuItems, wenn es aktiviert wurde? Vielleicht bin ich gerade etwas blind?!
Danke für eue Hilfe
ich arbeite mich gerade in die GUI Programmierung von Python ein. Genauer gesagt habe ich ein StatusIcon und Menu. In dem Menu befinden sich verschiedene MenuItems, welche ich unter anderem verändern möchte, wenn sie aktiviert wurden. Also definiere ich eine Funktion, welche aufgerufen werden soll, wenn besagtes MenuItem aktiviert wurde.
Der Funktion wird automatisch das Item übergeben, welches die Funktion ausgelöst hat. Mein erster Gedanke ist also, einfach das Label des übergebenen MenuItems ändern:
Code: Alles auswählen
def my_callback_function(self, item):
item.get_child().set_text("one two testing")
Zweiter Anlauf: Eine Klassenweite Variable.
Code: Alles auswählen
def build_menu(self, event_button, event_time):
[...]
self.my_item = new gtk.MenuItem("my item...")
self.my_item.connect('activate', self.my_callback_function)
self.my_item.show()
menu.append(self.my_item)
Code: Alles auswählen
self.my_item.get_child().set_text("my changed item...")
Danke für eue Hilfe
