HOWTO · Tkinter
Comment changer la taille des boutons Tkinter
Ce tutoriel présente la manière de définir et de modifier la taille du widget du bouton Tkinter.
Les options height et width du widget Tkinter Button spécifient la taille du bouton créé lors de l’initialisation. Après l’initialisation, nous pouvons toujours utiliser la méthode configure pour configurer les options height et width afin de modifier la taille du widget Tkinter Button par programmation.
Spécifier les options height et width pour définir la taille du Bouton
tk.Button(self, text="", height=20, width=20)
La height et la width sont fixées à 20 dans l’unité des unités de texte. L’unité de texte horizontale est égale à la largeur du caractère 0, et l’unité de texte verticale est égale à la hauteur de 0, toutes deux dans la police par défaut du système.
Codes de travail complets
import tkinter as tk
import tkinter.font as tkFont
app = tk.Tk()
app.geometry("400x200")
buttonExample1 = tk.Button(app, text="Button 1", width=10, height=10)
buttonExample2 = tk.Button(app, text="Button 2", width=10, height=10)
buttonExample1.pack(side=tk.LEFT)
buttonExample2.pack(side=tk.RIGHT)
app.mainloop()

Comme vous avez pu le constater, la hauteur et la largeur du bouton ne sont pas les mêmes en pixels, bien que sa width et sa height soient toutes deux fixées à 10.
Définissez la width et la height en pixels du bouton de Tkinter
Si nous devons spécifier la largeur et/ou la hauteur du widget Tkinter Button dans l’unité des pixels, nous pourrions ajouter une image virtuelle invisible de 1x1 pixels au Button. La width et la height seront alors mesurées dans l’unité du pixel.
tk.Button(app, text="Button 1", image=pixelVirtual, width=100, height=100, compound="c")
Nous devons également définir l’option composée comme étant c ou également tk.CENTER si l’image et le texte invisibles doivent être centrés dans le bouton. Si l’option compound n’est pas configurée, le text n’apparaîtra pas dans le bouton.
import tkinter as tk
import tkinter.font as tkFont
app = tk.Tk()
app.geometry("300x100")
fontStyle = tkFont.Font(family="Lucida Grande", size=20)
labelExample = tk.Label(app, text="20", font=fontStyle)
pixelVirtual = tk.PhotoImage(width=1, height=1)
buttonExample1 = tk.Button(
app, text="Increase", image=pixelVirtual, width=100, height=100, compound="c"
)
buttonExample2 = tk.Button(
app, text="Decrease", image=pixelVirtual, width=100, height=100, compound="c"
)
buttonExample1.pack(side=tk.LEFT)
buttonExample2.pack(side=tk.RIGHT)
app.mainloop()
Changer la taille du bouton Tkinter après l’initialisation
Après la création du widget Button, la méthode configure peut définir les options width et/ou height pour modifier la taille du Button.
buttonExample1.configure(height=100, width=100)
Elle fixe la height et la width du buttonExample1 à 100.
Exemples de travail complets pour modifier la taille des boutons après l’initialisation
import tkinter as tk
import tkinter.font as tkFont
app = tk.Tk()
app.geometry("600x500")
def decreaseSize():
buttonExample1.configure(height=100, width=100)
def increaseSize():
buttonExample2.configure(height=400, width=400)
pixelVirtual = tk.PhotoImage(width=1, height=1)
buttonExample1 = tk.Button(
app,
text="Decrease Size",
image=pixelVirtual,
width=200,
height=200,
compound="c",
command=decreaseSize,
)
buttonExample2 = tk.Button(
app,
text="Increase Size",
image=pixelVirtual,
width=200,
height=200,
compound=tk.CENTER,
command=increaseSize,
)
buttonExample1.pack(side=tk.LEFT)
buttonExample2.pack(side=tk.RIGHT)
app.mainloop()
