Начнем с добавления кнопки в окно.(комманда 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()
Кнопка создается и добавляется в окно так же, как и метка (комманда 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()
Результат будет следующим:
Обратите внимание, что мы помещаем кнопку во второй столбец окна, что равно 1. Если вы забудете и поместите кнопку в том же столбце, который равен 0, он покажет только кнопку.
Вы можете поменять цвет текста кнопки или любого другого виджета, используя свойство fg. Кроме того, вы можете поменять цвет фона любого виджета, используя свойство bg.
btn = Button(window, text="Не нажимать!", bg="black", fg="red")
Теперь, если вы попытаетесь щелкнуть по кнопке, ничего не произойдет, потому что событие нажатия кнопки еще не написано.
Для начала, мы запишем функцию, которую нужно выполнить при нажатии кнопки:
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()
При нажатии на кнопку, результат, как и ожидалось, будет выглядеть следующим образом:
счетчик кликов:
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() Вызывает обратный вызов кнопки и возвращает то, что возвращает эта функция. Не действует, если кнопка отключена или обратного вызова нет. |