Я получаю ошибку:
self.frames[ControlPage.__name__].Win.configure(bg=bg)
AttributeError: 'ControlPage' object has no attribute 'Win'
Код:
class Appsas(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side='top', fill='both', expand=True,)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, ControlPage, DigPage):
page_name = F.__name__
frame = F(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky='nsew')
self.show_frame('StartPage')
menubar = Menu(self)
Color = Menu(menubar, tearoff=0)
menubar.add_cascade(label='Change color',menu=Color)
Color.add_command(label='Black', command=self.black)
Color.add_command(label='Green', command='')
Color.add_command(label='Blue', command='')
Color.add_command(label='Random', command='')
self.config(menu=menubar)
def black(self):
bg='black'
fg='white'
self.frames[StartPage.__name__].configure(bg=bg)
self.frames[ControlPage.__name__].Win.configure(bg=bg)
class ControlPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
self.label = tk.Label(self, text="CONTROL PAGE", bg='white', height=3, font=font)
self.label.pack(side="top", fill="x", pady=15)
self.button = Button(self, text="Back to manual page", command=lambda: controller.show_frame("StartPage"),width=20, bg='white', relief=SOLID)
self.button.pack()
def add():
Win = Toplevel()
Win.title('Adding zone')
Win.geometry('300x200+800+400')
Win.config(pady=50, padx=50)
Win.resizable(width=False, height=False)
label = Label(Win, text='Entet zone name').pack()
entry = Entry(Win)
entry.pack()