• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ekran ładowania pomiedzy przejściem między klasami (python)

VPS Starter Arubacloud
0 głosów
373 wizyt
pytanie zadane 5 maja 2021 w Python przez klops11112 Nowicjusz (120 p.)

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.

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 475 wizyt
0 głosów
0 odpowiedzi 264 wizyt
0 głosów
1 odpowiedź 246 wizyt

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...