Menueleiste erscheint nicht

Fragen zu Tkinter.
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Menueleiste erscheint nicht

Beitragvon Andy » Dienstag 6. Juni 2006, 13:16

Hallo Leute,

hab mal wieder ein Prob. mit dem ich mich seit´ner halben Woche beschäftige.

Irgendwie bekomme ich die Menüleiste nicht im Tkinter-Menü angezeigt:

Code: Alles auswählen

# -*- coding: cp1252 -*-
from Tkinter import *
import tkMessageBox

class Hauptfenster:
    def __init__ (self):
        self.fenster=Tk()
        self.fenster.title('Test')
        self.__addMenueleiste()
        self.__addDateimenue()
        self.fenster.mainloop()

    def __addMenueleiste(self):
        self.menueleiste=Menu(self.fenster)
        self.fenster.configure (menu=self.menueleiste)

       
    def __addDateimenue(self):
        self.dateimenue=Menu(master=self.menueleiste)
        self.dateimenue.add_separator()
        self.dateimenue.add_command(label="Info",
                                    command = self.info)
        self.dateimenue.add_command(label='Ende',
                                    command=self.beenden)

    def info (self):
        if tkMessageBox.showinfo ('Info',
                                  'Hier gehört ein Infotext rein!'):
            self.fenster.mainloop()


    def beenden (self):
        if tkMessageBox.askyesno('Beenden',
                                 'Wollen Sie wirklich das Programm beenden?'):
            self.fenster.destroy()


hauptfenster = Hauptfenster()


Es kommt auch keine Fehlermeldung. Ich verzweifle langsam :roll:
dank schonmal!
Benutzeravatar
wuf
User
Beiträge: 1367
Registriert: Sonntag 8. Juni 2003, 09:50

Beitragvon wuf » Donnerstag 8. Juni 2006, 22:25

Hallo Andy

Du hast nur ein Submenue programmiert! Dieses muss aber
noch einem Hauptmenue in der Menueleiste hinzugefügt werden.
Ich habe hier im Skript noch ein Hauptmenu 'Datei' hinzugefügt.
So funktioniert es. In der Methode 'Info' habe ich noch self.fenster.mainloop()
durch pass ersetzt da self.fenster.mainloop() schon in der
Methode __init__ gestartet wurde.

Code: Alles auswählen

# -*- coding: cp1252 -*-
from Tkinter import *
import tkMessageBox

class Hauptfenster:
    def __init__ (self):
        self.fenster=Tk()
        self.fenster.title('Test')
        self.__addMenueleiste()
        self.__addDateimenue()
        self.__addMainMenue()
        self.fenster.mainloop()

    def __addMenueleiste(self):
        self.menueleiste=Menu(self.fenster)
        self.fenster.configure (menu=self.menueleiste)

    def __addDateimenue(self):
        self.dateimenue=Menu(master=self.menueleiste)
        self.dateimenue.add_separator()
        self.dateimenue.add_command(label="Info",
                                    command = self.info)
        self.dateimenue.add_command(label='Ende',
                                    command=self.beenden)

    def __addMainMenue(self):
        self.menueleiste.add_cascade(label='Datei',menu=self.dateimenue)

    def info (self):
        if tkMessageBox.showinfo ('Info','Hier gehört ein Infotext rein!'):
             pass

    def beenden (self):
        if tkMessageBox.askyesno('Beenden',
                                 'Wollen Sie wirklich das Programm beenden?'):
            self.fenster.destroy()

hauptfenster = Hauptfenster()


Gruss wuf :wink:
Take it easy Mates!
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Dankeschön

Beitragvon Andy » Samstag 10. Juni 2006, 09:47

Hi Wuf,

dankeschön erstmal.

Auf pass wär ich nu gar nicht gekommen.
Viel mehr kümmert mich, dass ich dieses Beispiel aus einem Buch
hatte. (OOP!):? Grrr

Naja, auch Autoren können irren.

Gruss Andy

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder