Как изменить размер кнопки Tkinter

  1. Укажите опции height и width для установки размера кнопки
  2. Установите width и height в пикселах кнопки Tkinter
  3. Измените размер кнопки после инициализации

Опции 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()

Размеры установки высоты и ширины кнопки Tkinter Button_set

Как вы могли видеть, высота и ширина кнопки не совпадают в пикселях, хотя ее 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()

Изменение размера кнопки Tkinter

Сопутствующая статья - Tkinter Button

  • Как передать Аргументы команде кнопки Tkinter
  • Как закрыть окно Tkinterа с помощью кнопки
  • Как изменить состояние кнопки Tkinter
  • Как привязать несколько команд к кнопке Tkinter
  • Как создать новое окно, нажав кнопку в Tkinter
  • comments powered by Disqus