Как изменить размер кнопки в tkinter
Перейти к содержимому

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

  • автор:

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

Одним из наиболее используемых компонентов в графических программах является кнопка. В tkinter кнопки представлены классом Button . Основные параметры виджета Button:

  • command : функция, которая вызывается при нажатии на кнопку
  • compund : устанавливает расположение картинки и текста относительно друг друга
  • cursor : курсор указателя мыши при наведении на метку
  • image : ссылка на изображение, которое отображается на метке
  • pading : отступы от границ вилжета до его текста
  • state : состояние кнопки
  • text : устанавливает текст метки
  • textvariable : устанавливает привязку к элементу StringVar
  • underline : указывает на номер символа в тексте кнопки, который подчеркивается. По умолчанию значение -1, то есть никакой символ не подчеркивается
  • width : ширина виджета

Добавим в окно обычную кнопку из пакета ttk:

from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") # стандартная кнопка btn = ttk.Button(text="Button") btn.pack() root.mainloop()

Для создания кнопки используется конструктор Button() . В этом конструкторе с помощью параметра text можно установить текст кнопки.

Чтобы разместить виджет в контейнере (главном окне), у него вызывается метод pack() . На ОС Windows мы получим следующую кнопку:

Кнопка в tkinter в Python

Конструктор Button определяет различные параметры, которые позволяют настроить поведение и внешний вид кнопки. Однако конкретный набор параметров зависит от того, используем ли мы кнопки из пакета tkinter или из пакета tkinter.ttk.

Обработка нажатия на кнопку

Для обработки нажатия на кнопку необходимо установить в конструкторе параметр command , присвоив ему ссылку на функцию, которая будет срабатывать при нажатии:

from tkinter import * from tkinter import ttk clicks = 0 def click_button(): global clicks clicks += 1 # изменяем текст на кнопке btn["text"] = f"Clicks " root = Tk() root.title("METANIT.COM") root.geometry("250x150") btn = ttk.Button(text="Click Me", command=click_button) btn.pack() root.mainloop()

Здесь в качестве обработчика нажатия устанавливается функция click_button. В этой функции изменяется глобальная переменная clicks, которая хранит число кликов. Кроме того, изменяем текст кнопки, чтобы визуально было видно сколько нажатий произведено. Таким образом, при каждом нажатии кнопки будет срабатывать функция click_button, и количество кликов будет увеличиваться:

Обработка нажатия кнопки в tkinter и Python

Отключение кнопки

Для ttk-кнопки мы можем установить отключенное состояние с помощью метода state() , передав ему значение «disabled». С такой кнопкой пользователь не сможет взаимодействовать:

from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") btn = ttk.Button(text="Click Me", state=["disabled"]) btn.pack() root.mainloop()

При этом в метод state мы можем передать набор состояний, поэтому значение «disabled» передается внутри списка.

How do I change button size in Python Tkinter?

Trending Articles on Technical and Non Technical topics

Tkinter Button widgets are used to create buttons that are necessary for an application. We can also add an event Object in the Button constructor and trigger it to perform some operation.

In order to customize the Button size, we can use the width and height property of the button widget.

Example

In this example, we will create some buttons with different sizes,

#Import the required libraries from tkinter import * #Create an instance of tkinter frame win= Tk() #Set the geometry of frame win.geometry("600x250") win.resizable(False, False) Button(win, text="Button-1",height= 5, width=10).pack() Button(win, text="Button-2",height=8, width=15).pack() Button(win, text= "Button-3",height=10, width=30).pack() win.mainloop()

Output

Running the above code will display a window containing buttons of different sizes.

Не меняется размер размер кнопок в Tkinter

Причём до этого у меня был другой шрифт в кнопках и размер кнопок менялся в зависимости от размера шрифта но после удаления шрифта размер не меняется. До удаления шрифта код выглядел так:

helv36 = tkFont.Font(family='Helvetica', size=10) save = tk.Button(root, text='Save', relief="flat", bg='#8DFF61', font=helv36) save.pack(side='left', pady=40, anchor='s', expand=1) save.config(width=10, height=50, command=save_p) exit = tk.Button(root, text='Close', relief="flat", bg='#B0B0B0', font=helv36) exit.pack(side='right', pady=40, anchor='s', expand=1) exit.config(width=10, height=50, command=close) 

Менять размер кнопок в конфиге уже пробовал

Python-сообщество

[RSS Feed]

  • Начало
  • » GUI
  • » Как изменить размер шрифта кнопки, не изменяя ее размер (TKinter)?

#1 Авг. 24, 2015 23:40:58

Peri-Reis Зарегистрирован: 2015-08-24 Сообщения: 4 Репутация: 0 Профиль Отправить e-mail

Как изменить размер шрифта кнопки, не изменяя ее размер (TKinter)?

from Tkinter import * root = Tk() root.geometry('500x500') btn = Button(root, width='25', height='10', font='Arial 20') btn.pack() root.mainloop() 

Размер кнопки изменяется в зависимости от размера шрифта, не смотря на заданные width и height. Как этого избежать?

#2 Авг. 24, 2015 23:49:12

4kpt_III Зарегистрирован: 2014-12-22 Сообщения: 999 Репутация: 39 Профиль Отправить e-mail

Как изменить размер шрифта кнопки, не изменяя ее размер (TKinter)?

width и height в кнопке не задается в пикселях. Он задается в символах. Т.е. длина 25 символов. С увеличением размера шрифта увеличивается и размер символов, соответственно увеличивается и размер кнопки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *