In this video I’ll show you how to dynamically resize buttons whenever you resize an app Window using Tkinter and Python.
We’ll use the grid system and something called Grid.rowconfigure() and Grid.columnconfigure() to dynamically resize to fit the container that they’re in, and automatically resize themselves if the user manually changes the size of the app.
This is a fun one!
Python Code: button_stretch.py
(Github Code)
from tkinter import *
root = Tk()
root.title('Codemy.com - Expand Buttons To Fit App')
root.iconbitmap('c:/gui/codemy.ico')
root.geometry("500x500")
# Config our column rows and cols
#Grid.rowconfigure(root, index=0, weight=1)
Grid.columnconfigure(root, index=0, weight=1)
# Config row 2
#Grid.rowconfigure(root, 1, weight=1)
# Create two buttons
button_1 = Button(root, text="Button 1")
button_2 = Button(root, text="Button 2")
button_3 = Button(root, text="Button 3")
button_4 = Button(root, text="Button 4")
# Grid them to the screen
button_1.grid(row=0, column=0, sticky="nsew")
button_2.grid(row=1, column=0, sticky="nsew")
button_3.grid(row=2, column=0, sticky="nsew")
button_4.grid(row=3, column=0, sticky="nsew")
# Create list of buttons
button_list = [button_1, button_2, button_3, button_4]
# Define row number
row_number = 0
weight_number = 1
#loop thru the list and config each row automatically
for button in button_list:
Grid.rowconfigure(root, row_number, weight=weight_number)
# Increment the counter
row_number += 1
weight_number += 1
root.mainloop()

Add comment