Good morning ! How can I make everything in a customtkinter window, like widgets and other elements, automatically resize when I resize the window?

1 week ago 2
ARTICLE AD BOX

import tkinter as tk

import customtkinter as ctk

# ===============================

# CONFIGURATION GLOBALE

# ===============================

ctk.set_appearance_mode("dark")

ctk.set_default_color_theme("dark-blue")

# ===============================

# FONCTION DE CENTRAGE

# ===============================

def center_window(window, width, height):

screen_width = window.winfo_screenwidth() screen_height = window.winfo_screenheight() x = (screen_width // 2) - (width // 2) y = (screen_height // 2) - (height // 2) window.geometry(f"{width}x{height}+{x}+{y}")

# ===============================

# FENETRE PRINCIPALE

# ===============================

root = ctk.CTk()

root.title("Bienvenue !")

window_width = 600

window_height = 300

center_window(root, window_width, window_height)

# ===============================

# FRAME PRINCIPALE

# ===============================

main_frame = ctk.CTkFrame(master=root, corner_radius=20)

main_frame.pack(padx=20, pady=20, fill="both", expand=True)

# ===============================

# LABEL PRINCIPAL

# ===============================

welcome_label = ctk.CTkLabel(

master=main_frame, text="Bienvenue, mon ami", text_font=("Helvetica", 40, "bold"), text_color="#FFD93D"

)

welcome_label.pack(expand=True)

# ===============================

# BOUTON QUITTER

# ===============================

exit_button = ctk.CTkButton(

master=main_frame, text="Quitter", width=120, height=40, command=root.destroy

)

exit_button.pack(pady=20)

# ===============================

# FRAMES SUPPLEMENTAIRES POUR LONGUEUR

# ===============================

left_frame = ctk.CTkFrame(master=root, width=50)

left_frame.pack(side="left", fill="y", padx=10, pady=10)

right_frame = ctk.CTkFrame(master=root, width=50)

right_frame.pack(side="right", fill="y", padx=10, pady=10)

top_frame = ctk.CTkFrame(master=root, height=50)

top_frame.pack(side="top", fill="x", padx=10, pady=10)

bottom_frame = ctk.CTkFrame(master=root, height=50)

bottom_frame.pack(side="bottom", fill="x", padx=10, pady=10)

# ===============================

# LABELS SUPPLEMENTAIRES

# ===============================

label1 = ctk.CTkLabel(master=left_frame, text="Label 1", text_color="#AAAAAA")

label1.pack(pady=2)

label2 = ctk.CTkLabel(master=left_frame, text="Label 2", text_color="#AAAAAA")

label2.pack(pady=2)

label3 = ctk.CTkLabel(master=left_frame, text="Label 3", text_color="#AAAAAA")

label3.pack(pady=2)

label4 = ctk.CTkLabel(master=left_frame, text="Label 4", text_color="#AAAAAA")

label4.pack(pady=2)

label5 = ctk.CTkLabel(master=left_frame, text="Label 5", text_color="#AAAAAA")

label5.pack(pady=2)

label6 = ctk.CTkLabel(master=right_frame, text="Label 6", text_color="#AAAAAA")

label6.pack(pady=2)

label7 = ctk.CTkLabel(master=right_frame, text="Label 7", text_color="#AAAAAA")

label7.pack(pady=2)

label8 = ctk.CTkLabel(master=right_frame, text="Label 8", text_color="#AAAAAA")

label8.pack(pady=2)

label9 = ctk.CTkLabel(master=right_frame, text="Label 9", text_color="#AAAAAA")

label9.pack(pady=2)

label10 = ctk.CTkLabel(master=right_frame, text="Label 10", text_color="#AAAAAA")

label10.pack(pady=2)

label11 = ctk.CTkLabel(master=top_frame, text="Label 11", text_color="#AAAAAA")

label11.pack(pady=2)

label12 = ctk.CTkLabel(master=top_frame, text="Label 12", text_color="#AAAAAA")

label12.pack(pady=2)

label13 = ctk.CTkLabel(master=top_frame, text="Label 13", text_color="#AAAAAA")

label13.pack(pady=2)

label14 = ctk.CTkLabel(master=top_frame, text="Label 14", text_color="#AAAAAA")

label14.pack(pady=2)

label15 = ctk.CTkLabel(master=top_frame, text="Label 15", text_color="#AAAAAA")

label15.pack(pady=2)

label16 = ctk.CTkLabel(master=bottom_frame, text="Label 16", text_color="#AAAAAA")

label16.pack(pady=2)

label17 = ctk.CTkLabel(master=bottom_frame, text="Label 17", text_color="#AAAAAA")

label17.pack(pady=2)

label18 = ctk.CTkLabel(master=bottom_frame, text="Label 18", text_color="#AAAAAA")

label18.pack(pady=2)

label19 = ctk.CTkLabel(master=bottom_frame, text="Label 19", text_color="#AAAAAA")

label19.pack(pady=2)

label20 = ctk.CTkLabel(master=bottom_frame, text="Label 20", text_color="#AAAAAA")

label20.pack(pady=2)

# ===============================

# REPETITION DE BLOCS SIMPLES POUR LONGUEUR

# ===============================

for i in range(21, 101):

lbl = ctk.CTkLabel(master=main_frame, text=f"Label répétition {i}", text_color="#888888") lbl.pack(pady=1)

for i in range(101, 151):

lbl = ctk.CTkLabel(master=left_frame, text=f"Label répétition {i}", text_color="#888888") lbl.pack(pady=1)

for i in range(151, 201):

lbl = ctk.CTkLabel(master=right_frame, text=f"Label répétition {i}", text_color="#888888") lbl.pack(pady=1)

for i in range(201, 231):

lbl = ctk.CTkLabel(master=bottom_frame, text=f"Label répétition {i}", text_color="#888888") lbl.pack(pady=1)

# ===============================

# BOUCLE PRINCIPALE

# ===============================

root.mainloop()

Read Entire Article