Hi wuf,
ne, es wird keine Fehlermeldung ausgegeben. :K
Lg
Warum verhält sich alles in einer Klasse anders? (Tkinter)
OK l30n100
Zeigt das folgende Skript bei dir das Bild an?:
Gruss wuf
Zeigt das folgende Skript bei dir das Bild an?:
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()
Take it easy Mates!
OK l30n100
Schritt-02:
Wird bei diesem Skript das Bild auch angezeigt? Achtung das Bild wird nicht im grossen Hauptfenster sondern im zweiten kleinen Zusatzfenster (Toplevel) sichtbar!:
Gruss wuf
Schritt-02:
Wird bei diesem Skript das Bild auch angezeigt? Achtung das Bild wird nicht im grossen Hauptfenster sondern im zweiten kleinen Zusatzfenster (Toplevel) sichtbar!:
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()
Take it easy Mates!
OK
Schritt-03:
Mit diesem Skript sollte das Bild jetzt im Hauptfenster zuoberst angezeigt werden. Diesmal ohne Zusatzfenster. Bitte kontrollieren:
Gruss wuf
Schritt-03:
Mit diesem Skript sollte das Bild jetzt im Hauptfenster zuoberst angezeigt werden. Diesmal ohne Zusatzfenster. Bitte kontrollieren:
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()
Take it easy Mates!
OK l30n100
Hier dein Skript mit deiner Konfiguration anders zusammengesetzt. Die Bilder sollten jetzt im Hauptfenster und im Auswahlfenster angezeigt werden. Beim Aufruf des Loginfensters wird das Hauptfenster unsichtbar. Beim Abbruch des Logins wird das Hauptfenster wieder sichtbar. Bei einem korrekten Login wird das Loginfenster unsichtbar und das Auswahlfenster öffnet. Beim Abmelden aus dem Auswahlfenster schliesst das Auswahlfenster und das Hauptfenster wird wieder sichtbar und ist bereit für einen neuen Login. Aus den Klassen LoginWindow und HeaderMenuWindow (Auswahlfenster) können mittels einer Referenz der Klasse MainWindow deren Methoden aufgerufen werden. Bitte teste und studiere das folgende Skript:
Gruss wuf
Hier dein Skript mit deiner Konfiguration anders zusammengesetzt. Die Bilder sollten jetzt im Hauptfenster und im Auswahlfenster angezeigt werden. Beim Aufruf des Loginfensters wird das Hauptfenster unsichtbar. Beim Abbruch des Logins wird das Hauptfenster wieder sichtbar. Bei einem korrekten Login wird das Loginfenster unsichtbar und das Auswahlfenster öffnet. Beim Abmelden aus dem Auswahlfenster schliesst das Auswahlfenster und das Hauptfenster wird wieder sichtbar und ist bereit für einen neuen Login. Aus den Klassen LoginWindow und HeaderMenuWindow (Auswahlfenster) können mittels einer Referenz der Klasse MainWindow deren Methoden aufgerufen werden. Bitte teste und studiere das folgende Skript:
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()
Take it easy Mates!