L'étirement des images à l'aide de la grille de mise en page en Python Tkinter
Que j'essaie de faire des étirements pour le travail à l'aide de Python 2.6.7 avec Tkinter. J'imagine que le code ci-dessous pour étirer le premier bouton de la largeur de la deuxième, mais les deux boutons sont aussi large que dont ils ont besoin pour être adapté à leur texte.
#!/usr/bin/python
from Tkinter import *
win = Frame()
win.grid(sticky=N+S+E+W)
inner_a = Frame(win)
inner_a.grid(row=0, column=0, sticky=N+E+W)
inner_b = Frame(win)
inner_b.grid(row=1, column=0, sticky=S+E+W)
Button(inner_a, text='1').grid(row=0, column=0, sticky=E+W)
Button(inner_b, text='Some long text').grid(row=0, column=0, sticky=E+W)
win.mainloop()
Selon ma compréhension, la seule colonne dans win
permettra d'élargir la largeur de la plus grande chose qu'il contient, c'est à dire la largeur de inner_b
, puis la largeur de inner_a
, et, de là, de la première bouton, sera celle de la deuxième bouton.
En fait, ce qui se passe est le ci-dessous; le premier bouton n'est assez large pour contenir "1", pas aussi large que sur le deuxième bouton.
Que dois-je faire pour obtenir le premier bouton pour augmenter la taille de la seconde?
OriginalL'auteur me_and | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Si vous voulez des widgets à la ligne dans une grille, la première chose à faire est de s'assurer qu'ils ont le même parent. Ce n'est pas strictement nécessaire si tous les widgets sont de la même taille ou vous êtes seulement en utilisant une colonne.
Une autre chose que vous devez faire est de donner à votre colonne d'un poids. Ce qui se passe dans votre code, c'est que le widget est expansion pour remplir la colonne, mais la colonne n'est pas l'expansion de remplir le maître. Si vous lui donnez un poids de 1 il. Vous nie de faire quelque chose comme
inner_a.columnconfigure(1, weight=1)
, puis faire de même pour lesinner_b
.0
, pas1
que dans votre réponse) triés, bien, merci!êtes-vous conscient que vous pouvez mettre des widgets dans un récipient qui est différent de ses parents? C'est un très précieux technique. Il y a un
in_
option pour la grille, l'emballage et placer les commandes pour ce faire.merci pour cette réponse 😀
OriginalL'auteur Bryan Oakley