Search on blog:

Tkinter: How to set size for empty row or column in grid().

As default empty row/column has height/width 0 (zero) and you don't see this row/column but it exists.

import tkinter as tk

root = tk.Tk()

l1 = tk.Label(root, text='Col:8 Row:1', bg='red')
l1.grid(column=8, row=1)

l2 = tk.Label(root, text='Col:1 Row:8', bg='red')
l2.grid(column=1, row=8)

root.mainloop()
example-1-without-settings

You could put Label with spaces and new lines (\n) as text

import tkinter as tk

root = tk.Tk()

l1 = tk.Label(root, text='Col:8 Row:1', bg='red')
l1.grid(column=8, row=1)

l2 = tk.Label(root, text='Col:1 Row:8', bg='red')
l2.grid(column=1, row=8)

# add empty label in row 0 and column 0
l0 = tk.Label(root, text='     \n   ', bg='green')
l0.grid(column=0, row=0)

# add empty label in row 9 and column 9
l9 = tk.Label(root, text='     ', bg='green')
l9.grid(column=9, row=9)

root.mainloop()
example-2-empty-text

Or Label without text but with width/height

import tkinter as tk

root = tk.Tk()

l1 = tk.Label(root, text='Col:8 Row:1', bg='red')
l1.grid(column=8, row=1)

l2 = tk.Label(root, text='Col:1 Row:8', bg='red')
l2.grid(column=1, row=8)

# add empty label in row 0 and column 0
l0 = tk.Label(root, width=3, height=3, bg='green')
l0.grid(column=0, row=0)

l0 = tk.Label(root, width=3, height=3, bg='green')
l0.grid(column=9, row=9)

root.mainloop()
example-3-label-width-height

but both use width/height in chars, not pixels.

You can set minimal size for row or column (ie. row/column number 9) using

root.rowconfigure(9, minsize=30)
root.columnconfigure(9, minsize=30)

or

root.rowconfigure(9, {'minsize': 30})
root.columnconfigure(9, {'minsize': 30})
import tkinter as tk

root = tk.Tk()

l1 = tk.Label(root, text='Col:8 Row:1', bg='red')
l1.grid(column=8, row=1)

l2 = tk.Label(root, text='Col:1 Row:8', bg='red')
l2.grid(column=1, row=8)

# set minimal size for row 9 and column 9
root.rowconfigure(0, minsize=30)
root.rowconfigure(9, minsize=30)

root.columnconfigure(0, minsize=30)
root.columnconfigure(9, minsize=30)

root.mainloop()
example-4-with-settings

Notes:

If you use grid() in other widget ie. frame.grid(...) then you have to use frame.rowconfigure(...) and frame.columnconfigure

Stackoverflow: How to set a certain amount of rows and columns of a Tkinter grid?

Tkinter: How to use Radiobutton and grid() to create clickable calendar.

This simple example shows how to use Radiobutton and grid (and datetime) to create calendar for one month.

It also shows how to use command= in Radiobutton to execute function which changes text in few Labels

Because command= expects callback - it means function's name without () and arguments - so I use …

« Page: 1 / 1 »