Forum >> Principianti >> classe per sostituire aree dello schermo

Pagina: 1

Buonasera,



mi aiutereste a comprendere come scrivere correttamente un codice?




Voglio creare una classe che mi permetta di sostituire un'area dello schermo con un'altra.




Vi mostro il codice su cui sto lavorando.




Cosa sbaglio?




# voglio creare una classe con due parametri: la vecchia area & la nuova area
# istruzione: distruggi la vecchia area e sostituiscila con la nuova


import tkinter as tk

class Switch():
    def __init__(self, old_top, new_top):
        self.old_top=old_top
        self.new_top=new_top
    def switch(self):
        self.old_top.destroy()
        self.new_top=self.new_top(root)



class Calendario():
    
    def __init__(self, master):

        frameTop=tk.Frame(master, bg='red')
        frameTop.grid(row=1, column=0, sticky="wens")
        frameTop.grid_propagate()

        self.bottone=tk.Button(frameTop, bg='white', relief="flat")
        self.bottone.grid(row=0, column=0)
    
        self.label=tk.Label(frameTop, text='Calendario!', font=('MV Boli', 16), bg='white')
        self.label.grid(row=0, column=1, padx=35)


        
    

class Top():
    
    def __init__(self, master):

        frameTop=tk.Frame(master, bg='violet')
        frameTop.grid(row=0, column=0, sticky="wens")
        frameTop.grid_propagate()

        self.bottone=tk.Button(frameTop, bg='white', relief="flat", command=lambda: master.switch(Top2 ,Calendario))
        self.bottone.grid(row=0, column=0)
    
        self.label=tk.Label(frameTop, text='Hello!', font=('MV Boli', 16), bg='white')
        self.label.grid(row=0, column=1, padx=35)


class Top2():

    def __init__(self, master):

        frameTop=tk.Frame(master, bg='yellow')
        frameTop.grid(row=1, column=0, sticky="wens")
        frameTop.grid_propagate()

        self.bottone=tk.Button(frameTop, bg='white', relief="flat")
        self.bottone.grid(row=0, column=0)
       
        self.label=tk.Label(frameTop, text='Hello!', font=('MV Boli', 16), bg='white')
        self.label.grid(row=0, column=1, padx=35)

class Top3():

    def __init__(self, master):

        frameTop=tk.Frame(master, bg='pink')
        frameTop.grid(row=2, column=0, sticky="wens")
        frameTop.grid_propagate()

        self.bottone=tk.Button(frameTop, bg='white', relief="flat")
        self.bottone.grid(row=0, column=0)
        
        self.label=tk.Label(frameTop, text='Hello!', font=('MV Boli', 16), bg='white')
        self.label.grid(row=0, column=1, padx=35)

root=tk.Tk()
root.title('Hi!')
root.configure(bg='white')

Top1=Top(root)
Top2=Top2(root)
Top3=Top3(root)

root.mainloop()




    





Pagina: 1



Esegui il login per scrivere una risposta.