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.
sprudel
User
Beiträge: 250 Registriert: Donnerstag 8. März 2007, 17:12
Donnerstag 15. März 2007, 12:07
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
Donnerstag 15. März 2007, 12:12
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
Donnerstag 15. März 2007, 12:16
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?
Dill
User
Beiträge: 470 Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln
Donnerstag 15. März 2007, 12:24
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
Donnerstag 15. März 2007, 13:07
IMHO sollte man es gleich richtig machen und sich ``global`` gar nicht erst angewöhnen. GUIs sind *das* Paradebeispiel wo objektorientierte Programmierung sinnvoll ist.
Dill
User
Beiträge: 470 Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln
Donnerstag 15. März 2007, 13:26
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:
Donnerstag 15. März 2007, 14:09
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