Dynamische Menüeinträge mit PyGTK?

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
vocoder
User
Beiträge: 13
Registriert: Samstag 2. April 2011, 00:37

Hallo,

ich habe in einer Klasse eine Menüleiste angelegt, mit diesem Code:

Code: Alles auswählen

        menubar = gtk.MenuBar()

        self.meinmenu = gtk.Menu()
        meinm = gtk.MenuItem("_Extras")
        meinm.set_submenu(self.meinmenu)

        menubar.append(meinm)
Jetzt möchte ich, dass das Menü "Extras" dynamisch abhängig von den Benutzereingaben um neue Menüeinträge erweitert wird. Leider funktioniert das aber nicht so mit der Funktion wie ich es mir gedacht habe:

Code: Alles auswählen

        def menu_erweitern(self):
            eintrag = gtk.MenuItem("Neuer Eintrag!")
            self.meinmenu.append(eintrag)
Sicher mache ich irgend etwas falsch. Kann mir jemand sagen, wie man das hinkriegt?
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Mal ins Blaue geraten:

Code: Alles auswählen

        def menu_erweitern(self):
            eintrag = gtk.MenuItem("Neuer Eintrag!")
            self.meinmenu.append(eintrag)
            eintrag.show_all()
Gruß
Andy
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
vocoder
User
Beiträge: 13
Registriert: Samstag 2. April 2011, 00:37

In der Eile hatte ich "showall" statt "show_all" eingegeben und mich gewundert...

Code: Alles auswählen

AttributeError: 'gtk.MenuItem' object has no attribute 'showall'
Tatsächlich funktionieren "show" und "show_all".

Danke für die Lösung @Andyh und den Typo-Hinweis @lunar!
Zuletzt geändert von vocoder am Sonntag 6. November 2011, 20:40, insgesamt 4-mal geändert.
lunar

@vocoder: Lies den Beitrag von Andyh nochmal… die empfohlene Methode heißt "show_all()" :roll:
Antworten