=====Добавление виджета Button=====
Начнем с добавления кнопки в окно.(комманда pack)
\\
\\
\\
\\
\\
from tkinter import *
root = Tk()
root.geometry('300x300')
btn = Button(root, text="кнопка", command=clicked, width=20, font='Arial 12 italic')
btn.pack()
root.mainloop()
{{ :python:оконное_приложение:tkinter:but1.png?300 |}}
Кнопка создается и добавляется в окно так же, как и метка (комманда grid):
from tkinter import *
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.geometry('400x250')
lbl = Label(window, text="Привет", font=("Arial Bold", 50))
lbl.grid(column=0, row=0)
btn = Button(window, text="Не нажимать!")
btn.grid(column=1, row=0)
window.mainloop()
Результат будет следующим:
{{ :python:оконное_приложение:tkinter:uroki-po-tkinter-4.png?300 |}}
Обратите внимание, что мы помещаем кнопку во второй столбец окна, что равно 1. Если вы забудете и поместите кнопку в том же столбце, который равен 0, он покажет только кнопку.
====Изменение цвета текста и фона у Button=====
Вы можете поменять цвет текста кнопки или любого другого виджета, используя свойство **fg**.
Кроме того, вы можете поменять цвет фона любого виджета, используя свойство **bg**.
btn = Button(window, text="Не нажимать!", bg="black", fg="red")
{{ :python:оконное_приложение:tkinter:uroki-po-tkinter-5.png?300 |}}
Теперь, если вы попытаетесь щелкнуть по кнопке, ничего не произойдет, потому что событие нажатия кнопки еще не написано.
====Кнопка Click====
Для начала, мы запишем функцию, которую нужно выполнить при нажатии кнопки:
def clicked():
lbl.configure(text="Я же просил...")
Затем мы подключим ее с помощью кнопки, указав следующую функцию:
btn = Button(window, text="Не нажимать!", command=clicked)
**Обратите внимание:** мы пишем clicked, а не clicked()с круглыми скобками. Теперь полный код будет выглядеть так:
from tkinter import *
def clicked():
lbl.configure(text="Я же просил...")
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.geometry('400x250')
lbl = Label(window, text="Привет", font=("Arial Bold", 50))
lbl.grid(column=0, row=0)
btn = Button(window, text="Не нажимать!", command=clicked)
btn.grid(column=1, row=0)
window.mainloop()
При нажатии на кнопку, результат, как и ожидалось, будет выглядеть следующим образом:
{{ :python:оконное_приложение:tkinter:uroki-po-tkinter-6.png?300 |}}
===ПРИМЕРЫ===
счетчик кликов:
from tkinter import *
count = 0
def getCount():
global count
count +=1
root.title(f'клик: {count}')
root = Tk()
root.geometry('300x300')
btn_time = Button(root, text='check', command=getCount)
btn_time.pack()
Изменение времени:
from tkinter import *
import time
def getDate():
btn_time['text'] = time.strftime('%H:%M:%S');
root = Tk()
count = 1
root.title('клик'+ str(count))
root.geometry('300x300')
btn_time = Button(root, text='check', command=getDate)
btn_time.pack()
root.mainloop()
====Параметры====
^Sr.No.^Метод и описание|
|1|**activebackground** \\ Цвет фона, когда кнопка находится под курсором.|
|2|**activeforeground** \\ Цвет переднего плана, когда кнопка находится под курсором.|
|3|**bd** \\ Ширина границы в пикселях. По умолчанию 2.|
|4|**bg** \\ Нормальный цвет фона.|
|5|**command** \\ Функция или метод, вызываемый при нажатии кнопки.|
|6|**fg** \\ Нормальный цвет переднего плана (текста).|
|7|**font** \\ Шрифт текста, который будет использоваться для метки кнопки.|
|8|**height** \\ Высота кнопки в текстовых строках (для текстовых кнопок) или в пикселях (для изображений).|
|9|**highlightcolor** \\ Цвет выделения фокуса, когда виджет имеет фокус.|
|10|**image** \\ Изображение для отображения на кнопке (вместо текста).|
|11|**justify** \\Как показать несколько строк текста: **left**, чтобы выровнять по левому краю каждую строку; **center**, чтобы центрировать их; или **right**.|
|12|**padx** \\ Additional padding left and right of the text.|
|13|**pady** \\ Дополнительные отступы слева и справа от текста.|
|14|**relief** \\ Рельеф указывает тип границы. Некоторые значения SUNKEN, RAISED, GROOVE, и RIDGE.|
|15|**state** \\ Установите эту опцию на DISABLED чтобы затенить кнопку и сделать ее неактивной. Имеет значение ACTIVE, когда мышь находится над ним. По умолчанию NORMAL.|
|16|**underline** \\ Default is -1, Это означает, что ни один символ текста на кнопке не будет подчеркнут. Если неотрицательный, соответствующий текстовый символ будет подчеркнут.|
|17|**width** \\ Ширина кнопки в letters(при отображении текста) или в пикселях (при отображении изображения).|
|18|**wraplength** \\ Если для этого значения задано положительное число, строки текста будут перенесены в соответствии с этой длиной.|
====Методы====
Ниже приведены часто используемые методы для этого виджета -
^Sr.No.^Метод и описание|
|1|**flash()**\\ Заставляет кнопку мигать несколько раз между активными и обычными цветами. Оставляет кнопку в том состоянии, в котором она была изначально. Игнорируется, если кнопка отключена.|
|2|**invoke()** \\ Вызывает обратный вызов кнопки и возвращает то, что возвращает эта функция. Не действует, если кнопка отключена или обратного вызова нет.|