Maison > développement back-end > Tutoriel Python > Comment fonctionne le poids dans la géométrie de la grille de Tkinter ?

Comment fonctionne le poids dans la géométrie de la grille de Tkinter ?

Barbara Streisand
Libérer: 2024-10-24 11:35:02
original
1010 Les gens l'ont consulté

How Does Weight Function in Tkinter's Grid Geometry?

Quelles fonctions le poids remplit-il dans Tkinter ?

Tkinter fournit un gestionnaire de géométrie de grille complet pour organiser les widgets dans une fenêtre. Un attribut crucial d'une grille est l'option « poids », qui détermine la manière dont les colonnes et les lignes se développent lorsqu'il y a un surplus d'espace dans le conteneur.

Par défaut, chaque cellule de la grille a un poids de 0, ce qui indique qu'elle doit ne dépasse pas sa taille initiale. Cependant, l'attribution d'un poids non nul à une ligne ou à une colonne déclenche son expansion si de l'espace supplémentaire devient disponible.

Démonstration du poids en action

Considérez le code suivant :

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=0)
root.grid_columnconfigure(1, weight=0)

root.mainloop()
Copier après la connexion

Ce code crée une fenêtre avec deux cadres, f1 et f2, positionnés côte à côte. Puisqu'aucun poids n'est appliqué aux colonnes, tout espace disponible reste inutilisé.

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=1)

root.mainloop()
Copier après la connexion

L'ajout d'un poids de 1 à la première colonne garantit que lorsque la fenêtre est agrandie, l'espace supplémentaire sera distribué à la première colonne.

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=3)

root.mainloop()
Copier après la connexion

L'attribution de poids différents aux colonnes permet une répartition proportionnelle de l'espace excédentaire. Dans cet exemple, la deuxième colonne a trois fois le poids de la première, ce qui donne un rapport de 1:3.

La puissance du poids réside dans sa réponse dynamique au redimensionnement de la fenêtre. Au fur et à mesure que la fenêtre s'agrandit, les widgets s'adaptent à l'espace disponible tout en conservant leurs proportions relatives. Cette flexibilité est cruciale pour créer des interfaces utilisateur graphiques réactives et adaptables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal