Gruß wuf

Code: Alles auswählen
#!/usr/bin/python
# -*- coding: cp1252 -*-
#Module importieren
import tkinter as tk
#Klasse definieren
class App:
#root/master initialisieren
def __init__(self, master):
self.master = master
self.master.protocol("WM_DELETE_WINDOW", self.quit_app)
self.master.title("Frames")
#Hauptfenster initialiesieren und starten
def mainloop(self):
self.set_main_frame()
self.master.mainloop()
#Hauptfenster starten
def set_main_frame(self):
#Hauptframe definieren
self.main_frame = tk.Frame(self.master)
self.main_frame.pack()
#Widgets initialisieren
hallo_label = tk.Label(self.main_frame, text = "Hallo Tkinter!")
hallo_button = tk.Button(self.main_frame, text = "Weiter", command = self.set_entry_frame)
quit_button = tk.Button(self.main_frame, text = "Beenden", command = self.quit_app)
#Widgets positionieren
hallo_label.grid(row = 0, column = 0, columnspan = 2)
hallo_button.grid(row = 1, column = 0)
quit_button.grid(row = 1, column = 1)
#Bestätigung in der Konsole
print("Hauptfenster geöffnet")
#Einsellungsfenster starten
def set_entry_frame(self):
#Einstellungsframe definieren
self.entry_frame = tk.Frame(self.master)
#Hauptframe schließen
self.main_frame.destroy()
self.entry_frame.pack()
#Widgets initialisieren
head_label = tk.Label(self.entry_frame, text = "Eingaben")
entry1_label = tk.Label(self.entry_frame, text = "Eingabe 1")
self.entry1_entry = tk.Entry(self.entry_frame)
entry2_label = tk.Label(self.entry_frame, text = "Eingabe 2")
self.entry2_entry = tk.Entry(self.entry_frame)
safe_entry_button = tk.Button(self.entry_frame, text = "Ausgeben", command = self.set_request_win)
#Widgets positionieren
head_label.grid(row = 0, column = 0, columnspan = 2)
entry1_label.grid(row = 1, column = 0)
self.entry1_entry.grid(row = 1, column = 1)
entry2_label.grid(row = 2, column = 0)
self.entry2_entry.grid(row = 2, column = 1)
safe_entry_button.grid(row = 3, column = 0, columnspan = 2)
#Bestätigung in der Konsole
print("Eingabefenster geöffnet")
#Bestätigung oder Abbruch
def set_request_win(self):
#Eingaben auslesen
self.entry = [self.entry1_entry.get(), self.entry2_entry.get()]
#Toplevel Fenster definieren
self.request_win = tk.Toplevel()
self.request_win.title("Wirklich?")
#Widgets initialisieren
question_label = tk.Label(self.request_win, text = "Möchtest du den Text wirklich ausgeben?")
agree_button = tk.Button(self.request_win, text = "Also los, gib ihn aus!", command = self.print_entry)
main_button = tk.Button(self.request_win, text = "Ich überlegs mir...", command = self.to_main)
quit_button = tk.Button(self.request_win, text = "Sofort alles beenden!", command = self.quit_app)
#Widgets positionieren
question_label.grid(row = 0)
agree_button.grid(row = 1, sticky = "w,e")
main_button.grid(row = 2, sticky = "w,e")
quit_button.grid(row = 3, sticky = "w,e")
#Eingaben verwerten und zum Hauptfenster zurückkehren
def print_entry(self):
###Eingaben verwerten#########
for setting in self.entry: #
print(setting) #
##############################
#Nachfragefenster schließen
self.request_win.destroy()
#Ausgabeframe schließen
self.entry_frame.destroy()
#Hauptframe starten
self.set_main_frame()
def to_main(self):
self.request_win.destroy()
self.entry_frame.destroy()
self.set_main_frame()
def quit_app(self):
print("Programm beendet")
self.master.destroy()
#Mainfunktion (ausführen der App)
def main():
root = tk.Tk()
app = App(root)
app.mainloop()
if __name__ == "__main__":
main()
Code: Alles auswählen
try:
#~~ For Python 2.x
import Tkinter as tk
except ImportError:
#~~ For Python 3.x
import tkinter as tk
APP_WIN_XPOS = 50
APP_WIN_YPOS = 50
class App(object):
def __init__(self):
self.win = tk.Tk()
self.win.geometry('+{0}+{1}'.format(APP_WIN_XPOS, APP_WIN_YPOS))
self.win.protocol("WM_DELETE_WINDOW", self.close)
def run(self):
self.win.mainloop()
def close(self):
self.win.destroy()
app = App()
app.win.title("Tk App Templates")
app.run()
Code: Alles auswählen
def set_main_frame(self):
#Hauptframe definieren
self.main_frame = tk.Frame(self.master)
self.main_frame.pack()
#Widgets initialisieren
hallo_label = tk.Label(self.main_frame, text = "Hallo Tkinter!")
hallo_button = tk.Button(self.main_frame, text = "Weiter", command = self.set_entry_frame)
quit_button = tk.Button(self.main_frame, text = "Beenden", command = self.quit_app)
#Widgets positionieren
hallo_label.grid(row = 0, column = 0, columnspan = 2)
hallo_button.grid(row = 1, column = 0)
quit_button.grid(row = 1, column = 1)
#Bestätigung in der Konsole
print("Hauptfenster geöffnet")
Code: Alles auswählen
def set_main_frame(self):
#Hauptframe definieren
self.main_frame = tk.Frame(self.master)
self.main_frame.pack()
#Widgets initialisieren
hallo_label = tk.Label(self.main_frame, text="Hallo Tkinter!")
hallo_label.grid(row=0, column=0, columnspan=2)
hallo_button = tk.Button(self.main_frame, text="Weiter",
command=self.set_entry_frame)
hallo_button.grid(row=1, column=0)
quit_button = tk.Button(self.main_frame, text="Beenden",
command=self.quit_app)
quit_button.grid(row=1, column=1)
#Bestätigung in der Konsole
print("Hauptfenster geöffnet")
Richtig, das sollte man in dieses Beispiel-Skelett einfügen.Scriptinggamer hat geschrieben:Also soweit ich wüsste wäre es ok, aber Leonidas meinte, ich sollte keinen Code auf Modulebene schreiben, also main() funktion und if __name__ == "__name__":
main()