11
votes

Comment faire une optionMenu maintenir la même largeur?

J'ai un extrait qui crée un widget optionMenu code>.

...
options = ('White', 'Grey', 'Black', 'Red', 'Orange', 
           'Yellow', 'Green', 'Blue', 'Cyan', 'Purple')
var = StringVar()
optionmenu = OptionMenu(par, var, *options)
optionmenu.grid(column=column, row=row)
...


0 commentaires

3 Réponses :


15
votes

Lorsque vous utilisez la commande grille pour placer le widget de son parent, demandez au widget remplir sa cellule (essayez Sticky = "EW" )


2 commentaires

Cela ne fonctionne pas pour moi. J'utilise une liste déroulante dans un cadre. Pourtant, il l'étend à de longues options dans la liste déroulante.


Un alternatif pourrait être de trouver la largeur maximale de tous les widgets dans cette colonne, puis définissez la valeur par défaut de la variable dans le menu Option pour être "" * (max_width / font_size_of_option_widget). La taille du widget peut être obtenue à l'aide du widget.update (), puis widget.winfo_width ()



28
votes

Au meilleur de ma connaissance, vous pouvez utiliser optionMenu.config (largeur = ) code> comme suit:

...
optionmenu = OptionMenu(par, var, *options)
optionmenu.config(width=<YOUR_WIDTH>)
optionmenu.grid(column=column, row=row)
...


0 commentaires

1
votes
optionmenu.configure(width=<YOUR_WIDTH_HERE>)

0 commentaires