'Tkinter Grid columns filling the tkScrolledframe window and resizing properly

I am placing a grid structure on a TkScrolledFrame widget and I am having a hard time getting the grid to be close to even columns, and then when the window is resized, the columns all stay exactly the same and the space on the right of my table is just blank.

# -----------------------------Frame for Invoice-----------------------------
invoice_frame = tk.Frame(self.dashboard_window, border=1, relief=tk.GROOVE, bg='white')
invoice_frame.place(relx=0.3375, rely=row_3_top, relwidth=0.326, relheight=0.3)

sf = ScrolledFrame(invoice_frame, scrollbars='vertical', bg='white')
sf.pack(side='top', expand=1, fill='both')

inner_frame = sf.display_widget(tk.Frame)
inner_frame.config(bg='white')

invoice_frame.grid_columnconfigure(0, weight=1, uniform='third')
invoice_frame.grid_columnconfigure(1, weight=1, uniform='third')
invoice_frame.grid_columnconfigure(2, weight=1, uniform='third')

invoice_label = tk.Label(inner_frame, justify="center", anchor="center",
                      text='INVOICES',
                      font=FONT, bg='white')
invoice_label.grid(row=0, column=0, columnspan=3, sticky=tk.NSEW)

# Calls the function to return all the data for the invoices table.
invoices = Dashboard_functions.invoices_table(self, cursor=cursor)

for i, val in enumerate(invoices):
    invoiceID = tk.Label(inner_frame, justify='center', anchor='center', text=f'{str(val[0])}',
                         font=FONT1, bg='white')
    invoiceID.grid(row=i+1, column=0, sticky = "nsew")
    sf.bind_scroll_wheel(invoiceID)

    salesman = tk.Label(inner_frame, justify='center', anchor='center', text=f'{str(val[1])}',
                        font=FONT1, bg='white')
    salesman.grid(row=i + 1, column=1, sticky = "nsew")
    sf.bind_scroll_wheel(salesman)

    invoiceAmt = tk.Label(inner_frame, justify='center', anchor='center', text=f'    ${round(val[2],2)}    ',
                          font=FONT1, bg='white')
    invoiceAmt.grid(row=i + 1, column=2, sticky = "nsew")
    sf.bind_scroll_wheel(invoiceAmt)


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source