ich habe mich dran versucht mir eine Klasse zu bauen welche mir in meinem Programm weitere Fenster nach einem gleichen Schema erstellen soll.
Leider scheitere ich am Logo, Label etc. funktionieren.
Ich bekomme immer beim Aufruf des 2. Fensters die Meldung pyimage2 doesn't exist.
Beim googlen habe ich gefunden das es irgendwas damit auf sich hat, das ich TK nur einmal initialisieren kann , und tk.Toplevel nutzen muss.
Ich checke es leider nicht.
Hier mein Klasse:
Code: Alles auswählen
import tkinter as tk
from tkinter import ttk as ttk
#import ttkbootstrap as ttk
from tkinter.messagebox import showinfo
import tkinter.font as font
from tkinter import font as tkFont
from PIL import ImageTk, Image
#Mainwindow
class App(tk.Tk):
def __init__(self,windowname,labelname,fullscreen):
super().__init__()
# configure the root window
self.title(windowname)
self.geometry('800x600')
if fullscreen == "true":
self.attributes('-fullscreen', True)
self.bind("<Escape>", self.quitFullScreen)
self.bind("<F11>", self.toggleFullScreen)
# label
myfontlabel = font.Font(family='Helvetica')
self.label = ttk.Label(self, text=labelname, background='darkgray' )
self.label['font'] = myfontlabel
self.label.place(x=1, y=1, width=5000, height=78)
# load picture
# Read image
img = Image.open("Logo.png")
self.bild = ImageTk.PhotoImage(img,self)
self.label1 = ttk.Label(self, image=self.bild)
# Position image
#self.label1.place(x= 1500, y = 1)
self.label1.pack(anchor="ne")
def toggleFullScreen(self, event):
self.fullScreenState = not self.fullScreenState
self.attributes("-fullscreen", self.fullScreenState)
def quitFullScreen(self, event):
self.fullScreenState = False
self.attributes("-fullscreen", self.fullScreenState)
app = App(Testapp","Testbezeichnung","true")
app.mainloop()
Code: Alles auswählen
class App(tk.Toplevel):
(Im Codebeispiel meiner Klasse wird das 2. Fenster nicht aufgerufen, dies mache ich bei klick auf einen Button.)