Tkinter grid fill empty space Tkinter grid fill empty space tkinter tkinter

Tkinter grid fill empty space


The quick and simple solution is to define the columnspan of the treeview. This will tell the treeview to spread across 2 columns and allow the entry field to sit next to your button.

On an unrelated note you can use strings for your sticky so you do not have to do things like tk.E+tk.NS. Instead simply use "nse" or whatever directions you need. Make sure thought you are doing them in order of "nsew".

import tkinter as tkfrom tkinter import ttkroot = tk.Tk()b1 = ttk.Button(root, text='b1')b1.grid(row=0, column=0, sticky="w")e1 = ttk.Entry(root)e1.grid(row=0, column=1, sticky="ew")t = ttk.Treeview(root)t.grid(row=1, column=0, columnspan=2, sticky="nsew") # columnspan=2 goes here.scroll = ttk.Scrollbar(root)scroll.grid(row=1, column=2, sticky="nse") # set this to column=2 so it sits in the correct spot.scroll.configure(command=t.yview)t.configure(yscrollcommand=scroll.set)# root.columnconfigure(0, weight=1) Removing this line fixes the sizing issue with the entry field.root.columnconfigure(1, weight=1)root.rowconfigure(1, weight=1)root.mainloop()

Results:

enter image description here

To fix your issue you mention in the comments you can delete root.columnconfigure(0, weight=1) to get the entry to expand properly.

enter image description here