Re: Warum verhält sich alles in einer Klasse anders? (Tkinter)
Verfasst: Montag 5. März 2018, 20:48
Hi wuf,
ne, es wird keine Fehlermeldung ausgegeben. :K
Lg
ne, es wird keine Fehlermeldung ausgegeben. :K
Lg
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
#~~ For Python 2.x
import Tkinter as tk
except ImportError:
#~~ For Python 3.x
import tkinter as tk
app_win = tk.Tk()
my_image = tk.PhotoImage(file="F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Startseite(klein).png")
head = tk.Label(app_win)
head.pack()
head["image"] = my_image
app_win.mainloop()
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
#~~ For Python 2.x
import Tkinter as tk
except ImportError:
#~~ For Python 3.x
import tkinter as tk
class Menu:
def __init__(self):
self.menu = tk.Toplevel()
#Startbild
self.my_image = tk.PhotoImage(file="F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Startseite(klein).png")
self.head = tk.Label(self.menu)
self.head.pack()
self.head["image"] = self.my_image
app_win = tk.Tk()
menu = Menu()
app_win.mainloop()
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter
class MainWindow:
def __init__(self): #, menu):
# Haupfenster
self.main = tkinter.Tk()
self.main.geometry("1000x580")
# Window Icon Set
self.main.iconbitmap("F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Icon.ico")
self.main.title("Fiete Pauker")
# Titelbild
self.head = tkinter.Label(self.main)
self.im = tkinter.PhotoImage(file="F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Startseite(klein).png")
self.head["image"] = self.im
self.head.pack()
# Begrüßungstext
self.hallo = tkinter.Label(self.main,
text = "Hallo\nmein Name ist Fiete P..", font="Arial 20")
self.hallo.pack()
self.meister = tkinter.Label(self.main, text = "...!", font="Arial 30")
self.meister.pack()
#Button 1
self.kopf = tkinter.Button(self.main, text = "Button 1",
command = self.loginwindow)
self.kopf["bg"] = "#14ADA0"
self.kopf["fg"] = "#FFFFFF"
self.kopf["relief"] = "flat"
self.kopf["height"] = 3
self.kopf["width"] = 29
self.kopf["font"] = "Arial 15 bold"
self.kopf.pack(padx = 70, pady = 20, side = "left")
#Button 2
self.blatt = tkinter.Button(self.main, text = "Button 2")
self.blatt["bg"] = "#1894CE"
self.blatt["fg"] = "#FFFFFF"
self.blatt["relief"] = "flat"
self.blatt["height"] = 3
self.blatt["width"] = 29
self.blatt["font"] = "Arial 15 bold"
self.blatt.pack(padx = 70, pady = 20, side = "right")
def loginwindow(self):
print("Hier started der Login")
startseite = MainWindow()
startseite.main.mainloop()
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter
#Kopfrechen - Auswahlmenü
class HeadMenuWindow:
def __init__(self, mainwindow):
# Referenz der MainWindow-Klasse
self.mainwindow = mainwindow
#Standard
self.headmenu = tkinter.Toplevel()
self.headmenu.title("Auswahl")
self.headmenu.geometry("1000x580")
self.headmenu.iconbitmap("F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Icon.ico")
#Titelbild
self.image = tkinter.PhotoImage(file="F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Kopfrechen\\Kopfrechen Menu(neu).png")
self.head = tkinter.Label(self.headmenu)
self.head.pack()
self.head["image"] = self.image
#Angemeldet als
self.login_as = tkinter.Label(self.headmenu, text = "...")
self.login_as["fg"] = "#000000"
self.login_as["bg"] = "#FFFFFF"
self.login_as["font"] = "Arial 15"
self.login_as.place(rely = 0.33, relx = 0.83)
#Abmelden
self.logout = tkinter.Button(self.headmenu, text = "Abmelden",
command=self.abmelden)
self.logout["font"] = "Arial 15 bold"
self.logout["relief"] = "flat"
self.logout["bg"] = "#D1D1D1"
self.logout["fg"] = "#FFFFFF"
self.logout["height"] = 1
self.logout["width"] = 12
self.logout.place(rely = 0.912, relx = 0.834)
#2
self.result = tkinter.Button(self.headmenu, text = "...")
self.result["font"] = "Arial 15 bold"
self.result["relief"] = "flat"
self.result["bg"] = "#ff0000"
self.result["fg"] = "#FFFFFF"
self.result["height"] = 7
self.result["width"] = 14
self.result.place(rely = 0.27, relx = 0.05)
#1
self.quad = tkinter.Button(self.headmenu, text = "...")
self.quad["relief"] = "flat"
self.quad["height"] = 2
self.quad["width"] = 16
self.quad["fg"] = "#FFFFFF"
self.quad["bg"] = "#ffe500"
self.quad["font"] = "Arial 15 bold"
self.quad.place(rely = 0.82, relx = 0.054)
def abmelden(self):
self.headmenu.destroy()
# Hier wird die Methode 'auswahl_abmelden' der MainWindow-Klasse
# aufgerufen mittels der Referenz der MainWindow-Klasse
# (self.mainwindow)
self.mainwindow.auswahl_abmelden()
class LogInWindow:
def __init__(self, mainwindow):
# Referenz der MainWindow-Klasse
self.mainwindow = mainwindow
self.login = tkinter.Toplevel()
self.login.title("Anmeldung")
self.login.geometry("261x130")
self.login.iconbitmap("F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Icon.ico")
#Widgets
self.logintxt1 = tkinter.Label(self.login, text = "Bitte melden Sie sich an")
self.logintxt1["font"] = "Arial 10 bold"
self.logintxt1.place(relx = 0.5, y = 6, anchor = "n")
self.logintxt2 = tkinter.Label(self.login, text = "Benutzername:")
self.logintxt2["font"] = "Arial 10"
self.logintxt2.place(x = 10, y = 30, anchor = "nw")
self.e1 = tkinter.Entry(self.login)
self.e1.place(x = 120, y = 33, anchor = "nw")
self.logintxt3 = tkinter.Label(self.login, text = "Passwort:")
self.logintxt3["font"] = "Arial 10"
self.logintxt3.place(x = 10, y = 60, anchor = "nw")
self.e2 = tkinter.Entry(self.login, show = "*")
self.e2.place(x = 120, y = 60, anchor = "nw")
self.abbruch_button = tkinter.Button(self.login, text = "Abbruch",
command=self.abbruch)
self.abbruch_button.place(x = 188, y = 90, anchor = "nw")
self.los = tkinter.Button(self.login, text = "Login", command=self.pwkopf)
self.los.place(x = 135, y = 90, anchor = "nw")
self.verweigern = tkinter.Label(self.login)
self.verweigern.place(x = 14, y = 91)
def pwkopf(self):
self.eingabe = self.e2.get() #Passwort
self.eingabe1 = self.e1.get() #Nutzername
if self.eingabe == "123" and self.eingabe1 == "123":
self.login.destroy()
# Hier wird die Methode 'login_ok' der MainWindow-Klasse aufgerufen
# mittels der Referenz der MainWindow-Klasse (self.mainwindow)
self.mainwindow.login_ok()
else:
self.verweigern["text"] = "Zugang verweigert!"
self.verweigern["font"] = "Arial 10"
self.verweigern["fg"] = "#FF0000"
#Extras
def abbruch(self):
self.login.destroy()
# Hier wird die Methode 'login_abbruch' der MainWindow-Klasse aufgerufen
# mittels der Referenz der MainWindow-Klasse (self.mainwindow)
self.mainwindow.login_abbruch()
class MainWindow:
def __init__(self): #, menu):
# Haupfenster
self.main = tkinter.Tk()
self.main.geometry("1000x580")
# Window Icon Set
self.main.iconbitmap("F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Icon.ico")
self.main.title("Fiete Pauker")
# Titelbild
self.head = tkinter.Label(self.main)
self.im = tkinter.PhotoImage(file="F:\\Python\\Projekte\\Fiete Pauker\\Fiete Pauker\\Startseite\\Startseite(klein).png")
self.head["image"] = self.im
self.head.pack()
# Begrüßungstext
self.hallo = tkinter.Label(self.main,
text = "Hallo\nmein Name ist Fiete P..", font="Arial 20")
self.hallo.pack()
self.meister = tkinter.Label(self.main, text = "...!", font="Arial 30")
self.meister.pack()
#Button 1
self.kopf = tkinter.Button(self.main, text = "Button 1",
command = self.loginwindow)
self.kopf["bg"] = "#14ADA0"
self.kopf["fg"] = "#FFFFFF"
self.kopf["relief"] = "flat"
self.kopf["height"] = 3
self.kopf["width"] = 29
self.kopf["font"] = "Arial 15 bold"
self.kopf.pack(padx = 70, pady = 20, side = "left")
#Button 2
self.blatt = tkinter.Button(self.main, text = "Button 2")
self.blatt["bg"] = "#1894CE"
self.blatt["fg"] = "#FFFFFF"
self.blatt["relief"] = "flat"
self.blatt["height"] = 3
self.blatt["width"] = 29
self.blatt["font"] = "Arial 15 bold"
self.blatt.pack(padx = 70, pady = 20, side = "right")
def loginwindow(self):
print("Hier started der Login")
# Mache das Hauptfenster unsichtbar
self.main.withdraw()
# Öffne das Loginfenster
self.login_window = LogInWindow(self)
def login_ok(self):
print("Der Login war korrekt. Hier geht es weiter")
# Öffne das Auswahlfenster
self.header_menu_window = HeadMenuWindow(self)
def login_abbruch(self):
print('Der Login wurde abgebrochen')
# Mache das Hauptfenster wieder sichtbar
self.main.deiconify()
def auswahl_abmelden(self):
print('Das Fenster mit der Auswahl wurde geschlossen')
# Mache das Hauptfenster wieder sichtbar
self.main.deiconify()
startseite = MainWindow()
startseite.main.mainloop()