importtkinterastkclassWindow(tk.Frame):def__init__(self,master):tk.Frame.__init__(self,master)# first screenself.screen_01=tk.Frame(master)self.screen_01.pack(fill=tk.BOTH,expand=1)self.screen_01.configure(background="yellow")# screen nav menuself.screen_01_nav_frame=tk.Frame(self.screen_01)self.screen_01_nav_frame.pack(fill=tk.X)self.screen_01_nav_frame.configure(background="orange")#screen twin text areasself.screen_01_double_text_frame=tk.Frame(self.screen_01)self.screen_01_double_text_frame.pack(fill=tk.X)self.screen_01_double_text_frame.configure(background="brown")# screen single text areaself.screen_01_single_text_frame=tk.Frame(self.screen_01)self.screen_01_single_text_frame.pack(fill=tk.BOTH)self.screen_01_single_text_frame.configure(background="pink")# Labels & buttons packed into frame 1a of frame 1self.label1a1=tk.Label(self.screen_01_nav_frame,text="label1",width=20,height=2)self.label1a1.config(bg="green")self.label1a1.pack(side=tk.LEFT)self.label1a2=tk.Label(self.screen_01_nav_frame,text="label2",width=20,height=2)self.label1a2.config(bg="green")self.label1a2.pack(side=tk.LEFT)self.label1a3=tk.Label(self.screen_01_nav_frame,text="label3",width=20,height=2)self.label1a3.config(bg="green")self.label1a3.pack(side=tk.LEFT)self.label1a4=tk.Label(self.screen_01_nav_frame,text="label4",width=20,height=2)self.label1a4.config(bg="green")self.label1a4.pack(side=tk.LEFT)# two text areas packed into frame 1b of frame 1self.text1b1=tk.Text(self.screen_01_double_text_frame,wrap=tk.WORD,bg="blue",bd=2,relief="ridge",height=20)self.text1b1.pack(side=tk.LEFT,fill=tk.X,expand=1)self.text1b1.delete(1.0,tk.END)self.text1b1.insert(tk.END,"Frame 1 text area 1\n")self.text1b2=tk.Text(self.screen_01_double_text_frame,wrap=tk.WORD,bg="blue",bd=2,relief="ridge",height=20)self.text1b2.pack(side=tk.LEFT,fill=tk.X,expand=1)self.text1b2.delete(1.0,tk.END)self.text1b2.insert(tk.END,"Frame 1 text area 2\n")# two text areas packed into frame 1b of frame 1self.text1c=tk.Text(self.screen_01_single_text_frame,wrap=tk.WORD,bg="white",bd=2,relief="ridge",height=20)self.text1c.pack(side=tk.LEFT,fill=tk.BOTH,expand=1)self.text1c.delete(1.0,tk.END)self.text1c.insert(tk.END,"Frame 1 text area 2\n")defswitch_mode(display_window):print(display_window)forwindowin[main_GUI.window1,main_GUI.window2]:window.pack_forget()display_window.pack()# init GUIclassGUI:def__init__(self,master):self.autorun=0self.master=master# weightingpixel=tk.PhotoImage(width=1,height=1)classNavButton(tk.Button):def__init__(self,*args,**kwargs):tk.Button.__init__(self,*args,**kwargs)self['bg']="#0070FF"self['image']=pixel
self['height']=45self['compound']='c'self['fg']='white'self['font']=('bold','11')# outermost frameself.top_nav_frame=tk.Frame(master)self.top_nav_frame.pack(fill=tk.X)self.top_nav_frame.configure(background="black")# top nav menuself.screen1_btn=NavButton(self.top_nav_frame,text="Startup",command=lambda:switch_mode(self.window1))self.screen1_btn.config(bg="darkblue")self.screen1_btn.pack(side=tk.LEFT,expand=1,fill=tk.X)self.screen2_btn=NavButton(self.top_nav_frame,text="Manage DCF",command=lambda:switch_mode(self.window2))self.screen2_btn.config(bg="darkblue")self.screen2_btn.pack(side=tk.LEFT,expand=1,fill=tk.X)self.label0c=tk.Label(self.top_nav_frame,text="0c",height=2)self.label0c.config(bg="darkblue")self.label0c.pack(side=tk.LEFT,expand=1,fill=tk.X)self.label0d=tk.Label(self.top_nav_frame,text="0d",height=2)self.label0d.config(bg="darkblue")self.label0d.pack(side=tk.LEFT,expand=1,fill=tk.X)# create the windoes from the window classself.window1=Window(master)self.window2=Window(master)# forget doesn't even work if I call it directly on a window right after I create itself.window1.pack_forget()root=tk.Tk()main_GUI=GUI(root)root.mainloop()