title: Python tkinter widgets get resized uneven when user resizes the window
body: <p>I am using a template that I saw in a youtube video for my app. I have split the window in 3 using 3 frames. All 3 frames are nested into a main frame. The main frame is attached directly to the root window.</p>
  
  <p>I am using pack manager in order to place mainframe inside the root window.
  I am using grid manager in order to place the 3 frames inside the mainframe.</p>
  
  <p>The issue that I'm facing is that when I try to resize the window the left frame gets resized more than the other 2 frames, and I don't understand why that happens. I need the frames to resize proportionately to each other. Why is the left frame getting resized more than the others? and how can I correct this?</p>
  
  <pre><code>import tkinter as tk
  from tkinter import ttk
  
  Normal_Font = ('Verdana', 9)
  Large_font = ('Verdana', 12)
  
  
  class MainApp(tk.Tk):
      def __init__(self, *args, **kwargs):
          tk.Tk.__init__(self, *args, **kwargs)
  
          mainframe = tk.Frame(self)
          mainframe.pack(side='top', fill='both', expand=True)
          mainframe.grid_rowconfigure(0, weight=1)
          mainframe.grid_columnconfigure(0, weight=1)
          #mainframe.grid(row=0, column=0, sticky='nesw')
  
          #left frame
          employerframe = tk.Frame(mainframe)
          employerframe.grid(row=0, column=0, sticky='nesw')
          employerframe.grid_rowconfigure(0, weight=1)
          employerframe.grid_columnconfigure(0, weight=1, uniform=1)
          label1 = tk.Label(employerframe, text='Employer Frame', font=Large_font)
          label1.grid(row=0, column=0, sticky='nesw')
  
          ttk.Separator(mainframe, orient=tk.VERTICAL) .grid(row=0, column=1, sticky='ns')
  
          #right frame
          candidateframe = tk.Frame(mainframe)
          candidateframe.grid(row=0, column=4, sticky='nesw')
          candidateframe.grid_rowconfigure(0, weight=1)
          candidateframe.grid_columnconfigure(0, weight=1, uniform=1)
          label2 = tk.Label(candidateframe, text='Candidate Frame', font=Large_font)
          label2.grid(row=0, column=0, sticky='nesw')
  
          ttk.Separator(mainframe, orient=tk.VERTICAL) .grid(row=0, column=3, sticky='ns')
  
          #middle frame
          container = tk.Frame(mainframe)
          container.grid(row=0, column=2, sticky='nesw')
          container.grid_rowconfigure(0, weight=1)
          container.grid_columnconfigure(0, weight=1, uniform=1)
  
          self.frames = {}
          frame = StartPage(container, self)
          self.frames[StartPage] = frame
          frame.grid(row=0, column=0, sticky='nesw')
          self.show_frame(StartPage)
  
      def show_frame(self, cont):
          frame = self.frames[cont]
          frame.tkraise()
  
  class StartPage(tk.Frame):
      def __init__(self, parent, controller):
          tk.Frame.__init__(self, parent)
          label = tk.Label(self, text='Start Page', font=Large_font)
          label.pack(pady=10, padx=10)
  
  app = MainApp()
  app.mainloop()
  </code></pre>