Кнопки

Последнее обновление: 10.09.2022

Одним из наиболее используемых компонентов в графических программах является кнопка. В 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 {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" передается внутри списка.

отключение кнопки в tkinter и python
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850