Différence entre les options" fill "et" expand " pour la méthode Tkinter pack

je sais que c'est trop une question triviale, mais je suis python, et j'ai commencé à utiliser le tkinter module. En fait, j'ai cherché partout à ce sujet et je ne trouve pas de réponse satisfaisante. J'ai trouvé le suivant:

fill option: il détermine s'il faut utiliser plus d'espace ou de garder dimensions "personnelles".

expand option: il s'agit de l'extension du widget parent.

le problème c'est que ces deux sons plus ou moins même. J'ai même essayé quelques exemples en basculant entre les 4 valeurs de fill et 2 valeurs de expand mais a reçu plus ou moins la même sortie dans 2 ou 3 cas, en raison de laquelle j'ai cette requête. Toute aide serait appréciée à cet égard. Merci à l'avance!

21
demandé sur nbro 2015-01-22 16:26:25

1 réponses

effbot:

remplir option indique au gestionnaire que le widget veut remplir tout l'espace attribué. La valeur contrôle la façon de remplir l'espace; signifie que le widget devrait s'étendre à la fois horisontalement et verticalement, X signifie qu'il ne doit s'étendre que de façon horisontale, et O signifie qu'il ne doit s'étendre que verticalement.

le développez option indique au gestionnaire d'attribuer de l'espace supplémentaire pour le widget boîte. Si le widget parent est plus grand que nécessaire pour contenir tous les widgets emballés, tout espace dépassant sera distribué parmi tous les widgets qui ont le développez option définie à une valeur non nulle.

fill indique au widget de passer à autant d'espace disponible dans la direction spécifiée,expand dit le maître de tout l'espace qui n'est pas attribué à n'importe quel widget et le distribuer à tous les widgets qui ont un non-zéro expand valeur.

la différence devient claire quand on exécute cet exemple:

import Tkinter as tk

root = tk.Tk()
root.geometry('200x200+200+200')

tk.Label(root, text='Label', bg='green').pack(expand=1, fill=tk.Y)
tk.Label(root, text='Label2', bg='red').pack(fill=tk.BOTH)

root.mainloop()

Vous pouvez voir que l'étiquette expand=1 est affectée de l'espace disponible, mais uniquement occupe dans la direction indiquée, Y. L'étiquette fill=tk.BOTH prend de l'expansion dans les deux directions, mais dispose de moins d'espace.

Expand vs Fill

24
répondu fhdrsdg 2015-01-22 13:48:26