Как изменить размер кнопки Tkinter
-
Укажите опции
height
иwidth
для установки размеракнопки
-
Установите
width
иheight
в пикселах кнопки Tkinter - Измените размер кнопки после инициализации
Опции height
и width
виджета Tkinter Button
задают размер создаваемой кнопки при инициализации. После инициализации все же можно было использовать метод configure
для настройки опций height
и width
для программного изменения размера виджета Tkinter Button
.
Укажите опции height
и width
для установки размера кнопки
tk.Button(self,
text = "",
height = 20,
width = 20)
height
и width
устанавливаются в единице текстовых единиц равными 20
. Горизонтальный текстовый блок равен ширине символа 0
, а вертикальный текстовый блок равен высоте 0
, оба в системном шрифте по умолчанию.
Причина, по которой Tkinter использует текстовые единицы для измерения ширины и высоты, а не дюймов или пикселей, заключается в том, что текстовые единицы обеспечивают согласованное поведение Tkinter на разных платформах.
Полные рабочие коды
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()
Как вы могли видеть, высота и ширина кнопки не совпадают в пикселях, хотя ее width
и height
установлены как 10
.
Установите width
и height
в пикселах кнопки Tkinter
Если нам нужно задать ширину и/или высоту виджета Tkinter Button
в единице пикселей
, то к Button
можно добавить виртуальное невидимое изображение 1x1
пикселей. Тогда width
и height
будут измеряться в единицах пикселей
.
tk.Button(app,
text="Button 1",
image=pixelVirtual,
width=100,
height=100,
compound="c")
Нам также нужно установить опцию compound
в c
или в равной степени tk.CENTER
, если невидимое изображение и текст должны быть отцентрированы в кнопке. Если compound
не настроен, то текст
не будет отображаться в кнопке.
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()
Измените размер кнопки после инициализации
После создания виджета Button
метод configure
может установить опции width
и/или height
для изменения размера Button
.
buttonExample1.configure(height = 100,
width = 100)
Он устанавливает height
и width
buttonExample1
равными 100
.
Полные примеры работы для изменения размера кнопки после инициализации
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()