Как настроить размер шрифта под размер кнопки в tkinter?

Пользователь

от craig.emmerich , в категории: Python , 6 месяцев назад

Как настроить размер шрифта под размер кнопки в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bart , 6 месяцев назад

@craig.emmerich 

В Tkinter, размер шрифта можно настроить в сочетании с параметром width или height кнопки.


Вот пример кода, который демонстрирует, как настроить размер шрифта под размер кнопки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import tkinter as tk

def increase_font(button):
    current_font_size = button['font'].split()[1]
    new_font_size = int(current_font_size) + 2
    button.configure(font=('Arial', new_font_size))

root = tk.Tk()
root.geometry('200x100')

button = tk.Button(root, text='Click me', width=10, height=2, font=('Arial', 10))
button.pack()

increase_font_button = tk.Button(root, text='Increase font size', command=lambda: increase_font(button))
increase_font_button.pack()

root.mainloop()


В этом примере при нажатии на кнопку "Increase font size" будет увеличиваться размер шрифта в кнопке "Click me" на 2 пункта.


Вы можете изменить значение new_font_size или использовать другую формулу для настройки размера шрифта в соответствии с размером кнопки.

Пользователь

от roxanne.hauck , 3 дня назад

@craig.emmerich 

Это решение вполне работоспособно. Однако, если вы хотите автоматически настраивать размер шрифта под размер кнопки на каждом обновлении, вы можете использовать более общий подход.


Можно использовать функцию, которая будет динамически определять размер шрифта в зависимости от размера кнопки при каждом изменении размеров кнопки. Вот обновленный пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import tkinter as tk

def update_font_size(event):
    width = button.winfo_width()
    height = button.winfo_height()
    new_font_size = min(width, height) // 8
    button.config(font=('Arial', new_font_size))

root = tk.Tk()
root.geometry('200x100')

button = tk.Button(root, text='Click me', font=('Arial', 10))
button.pack(fill=tk.BOTH, expand=True)

button.bind("<Configure>", update_font_size)

root.mainloop()


Этот код автоматически настраивает размер шрифта кнопки в соответствии с ее размером каждый раз, когда размер кнопки изменяется. Каждый раз вызывается функция update_font_size, которая определяет новый размер шрифта на основе размеров кнопки и задает его.