Unterfenster erzeugen
Verfasst: Montag 12. September 2016, 12:27
Moin,
ich bin totaler Frischling
früher mal programmiert, aber ist lange her. Ich mag mir ein Set von kleinen Tools für die Arbeit programmieren. Das ganze in eine GUI packen. Ich bekommen mit dem folgenden Code zwar ein Unterfenster geöffnet. Es hakt aber beim Unterfenster dabei, den Button 'quit' zu erzeugen. Fehlermeldung: 'name 'top' is not defined.
Aber wo zum Pfirsich hakt es? Ich erzeuge doch top in Zeile 53 und übergebe es bei der Instanziierung von 'unterfenster'?
Wenn mir einer helfen könnte, wäre ich dankbar. Hier ist der Code:
ich bin totaler Frischling

Aber wo zum Pfirsich hakt es? Ich erzeuge doch top in Zeile 53 und übergebe es bei der Instanziierung von 'unterfenster'?
Wenn mir einer helfen könnte, wäre ich dankbar. Hier ist der Code:
Code: Alles auswählen
import tkinter as tk
class Unterfenster(tk.Frame):
def __init__(self,master=None):
super().__init__(master)
self.pack()
self.create_widgets()
def create_widgets(self):
self.hi_there = tk.Button(self)
self.hi_there["text"] = "Hello World\n(click me)"
self.hi_there["command"] = self.say_hi
self.hi_there.pack(side="top")
self.quit = tk.Button(self, text="QUIT", fg="red", command=top.destroy)
self.quit.pack(side="bottom")
def say_hi(self):
print("hi there, everyone!")
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.create_widgets()
def meldung():
print("Hello!")
def create_widgets(self):
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Öffnen", command=Application.meldung)
filemenu.add_command(label="Beenden", command=root.destroy)
menubar.add_cascade(label="Datei", menu=filemenu)
root.config(menu=menubar)
self.hi_there = tk.Button(self)
self.hi_there["text"] = "Hello World\n(click me)"
self.hi_there["command"] = self.say_hi
self.hi_there.pack(side="top")
self.quit = tk.Button(self, text="QUIT", fg="red", command=root.destroy)
self.quit.pack(side="bottom")
def say_hi(self):
print("hi there, everyone!")
top = tk.Toplevel()
unterfenster = Unterfenster(master=top)
root = tk.Tk()
app = Application(master=root)
app.mainloop()