Ich kann nicht auf Objekt zugreifen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Hallo.
Ich habe ein Problem. Es sagt mir das Objekt Hauptfenster existiert nicht.
Folgender Code:

Code: Alles auswählen

def init_Hauptfenster(punkte=0,note=0):

    #Bereich des Hauptfensters mit Hauptmenü
    Hauptfenster = tk.Tk()
...
    Hauptfenster.pack()
    Hauptfenster_restartbutton= tk.Button(Hauptfenster,text="zum Hauptmenü",command=Hauptfenster_restart)
    Hauptfenster_restartbutton.pack()
    Hauptfenster.mainloop()

.............

def Hauptfenster_restart():
    Hauptfenster.destroy()
    init_Hauptfenster(0,0)


In der Funktion Hauptfenster_restart() sagt es mir dann allerdings dass Hauptfenster nicht existiert.
Was mache ich falsch?
MBR
User
Beiträge: 29
Registriert: Freitag 29. September 2006, 17:03

Hauptfenster ist in deinem Fall als lokale Variable zu sehen.

Binde Hauptfenser an deine Klasse (self.Hauptfenster) und deine Objekte werden gefunden.

Gruß,
M.
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Hallo. Das ganze ist leider keine Klasse. Und ich möchte das ehrlich gesagt auch erstmal ohne Klasse machen. Ist das auch so irgendwie möglich?
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

EDIT:

Code: Alles auswählen

def init_Hauptfenster(punkte=0,note=0): 
    global Hauptfenster
    #Bereich des Hauptfensters mit Hauptmenü 
    Hauptfenster = tk.Tk() 
machs aber später gescheit. sowas kann man zum testen machen, schön ist das nicht.
BlackJack

IMHO sollte man es gleich richtig machen und sich ``global`` gar nicht erst angewöhnen. GUIs sind *das* Paradebeispiel wo objektorientierte Programmierung sinnvoll ist.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

man sieht die vorteile der oop aber erst wenn man es mal "falsch" gemacht hat.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dill hat geschrieben:man sieht die vorteile der oop aber erst wenn man es mal "falsch" gemacht hat.
Oder OOP schon mal nachgebaut hat: ``Hauptfenster_init()``, ``Hauptfenster_on_btn_clicked()``, ``Hauptfenster_restart()`` etc.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten