Cześć,
Pomiędzy przejściem z klasy App2 do klasy App następuje chwilowa przerwa (po zamknięciu jednego okna i przed załadowaniem kolejnego). W przerwie tej przez chwilę widać pulpit, a chwila ta wydłuża się wraz ze skomplikowaniem reguł. (zaciąganie obrazków itp) Zależy mi na tym aby w tej przerwie zamiast pulpitu było widać jakiś ekran ładowania.
Próbowałem w tej przerwie utworzyć okno zamykające się automatycznie z opóźnieniem ale wtedy nie ładują się zasady (guziki obrazki itp) do otwieranej klasy
Docelowo program ma zawierać wiele skomplikowanych klas odpowiadających kolejnym oknom interfacu dlatego nie chciał bym tego tworzyć w jednym oknie.
from tkinter import *
import tkinter as tk
from PIL import ImageTk, Image
#================
class App(tk.Tk):
# App dziedziczy z tkinter.Tk
def __init__(self, title="Aplikacja"):
super().__init__() # konstruktor Tk
self.title(title) # ustaw tytuł
self.window() # nadaj elementy okna
def run(self):
# app.run() będzie się lepiej prezentować
self.mainloop()
def window(self):
#Okno Tytułowe Gry
self.bg1 = PhotoImage(file = "4.png")
self.canvas1 = Canvas(self,width=100,height=100,borderwidth=-10)
self.canvas1.pack(expand=YES, fill=BOTH,)
self.canvas1.create_image( 0, 0, image = self.bg1,anchor = "nw")
#Guziki w Ramce Okna MENU
self.button1=Button(self.canvas1,text="Wruć do App2")
self.button1.pack(expand=NO,fill=X, padx=20,pady=20,anchor=S)
self.button1.bind("<Button-1>", self.new_window)
def new_window(self,title):
self.destroy()
Menu()
#==============
class App2(tk.Tk):
# App dziedziczy z tkinter.Tk
def __init__(self, title="Aplikacja"):
super().__init__() # konstruktor Tk
self.title(title) # ustaw tytuł
self.window() # nadaj elementy okna
def run(self):
# app.run() będzie się lepiej prezentować
self.mainloop()
def window(self):
#Okno Tytułowe Gry
self.bg1 = PhotoImage(file = "4.png")
self.canvas1 = Canvas(self,width=100,height=100,borderwidth=-10)
self.canvas1.pack(expand=YES, fill=BOTH,)
self.canvas1.create_image( 0, 0, image = self.bg1,anchor = "nw")
#Guziki w Ramce Okna MENU
self.button1=Button(self.canvas1,text="przejdź do App")
self.button1.pack(expand=NO,fill=X, padx=20,pady=20,anchor=S)
self.button1.bind("<Button-1>", self.new_window)
def new_window(self,title):
self.destroy()
A1()
#=============
def Menu():
global app2
app2 = App2("Menu")
#full screen
app2.attributes('-fullscreen',True)
#Przełączenie trybu ekranowego za pomoca guzika F11
app2.bind("<F11>", lambda event: app2.attributes("-fullscreen",not app2.attributes("-fullscreen")))
app2.run()
def A1():
global app
app = App("Gra")
#full screen
app.attributes('-fullscreen',True)
#Przełączenie trybu ekranowego za pomoca guzika F11
app.bind("<F11>", lambda event: app.attributes("-fullscreen",not app.attributes("-fullscreen")))
app.bind("<Escape>", lambda event: DMenu())
app.run()
if __name__ == '__main__':
Menu()
Był bym wdzięczny za udzielenie pomocy.
Pozdrawiam.