Віджет Button – клас кнопки.
name = Button(window)name – ім'я кнопки, window – ім'я вікна, на якому вона розташовується
Змінити властивість кнопки або будь-якого іншого віджета можна так:
ім'я_віджета ["ім'я_властивості"] = значенняТакож можна скористатись методом config():
ім'я_віджета.config(ім'я_властивості = значення)Для того, щоб встановити дію, яка буде відбуватися після натиснення на кнопку, користуються властивістю command. Дії прописуються за допомогою користувацької функції. Наведемо приклад: потрібно на кнопку button1 встановити дію зміни кольору кнопки на фіолетовий.
Створюємо функцію f, яка змінює колір на фіолетовий (колір задано шістнадцятковим кодом):
def f(): button1['bg'] = '#C9A0DC'Використовуємо команду command при зміні конфігурації кнопки для установлення дії, визначеної функцією f:
button1.config(command=f) У tkinter за допомогою методу bind() між собою зв'язуються віджет, подія і дія. Наприклад, віджет — кнопка, подія — натиснення на кнопку лівою клавішею миші, дія — зміна кольору кнопки.
Загальний синтаксис:
ім'я_віджета.bind(подія, дія)Дія оформлюється як функція!
Можливі такі події:
Більший список подій можна знайти тут.
Наведемо приклад: потрібно на кнопку button1 встановити дію зміни кольору кнопки на фіолетовий.
Створюємо функцію f, яка змінює колір на фіолетовий (колір задано шістнадцятковим кодом):
def f(): button1['bg'] = '#C9A0DC'Використовуємо метод bind для установлення дії, визначеної функцією f, на подію "Натиснута ліва клавіша миші":
button1.bind("<Button-1>", f)Зверніть увагу, що подія береться у лапки.
from tkinter import * # імпортування графічної бібліотеки root = Tk()butt = Button(text="Змінити колір", # задання тексту на кнопці width=20, # ширина height=5) # висота # програмуємо дію за допомогою функціїdef change(): butt['text'] = "Колір змінено" # текст на кнопці butt['bg'] = '#A4C639' # колір фону після натискання, заданий шістнадцятковим кодом butt['activebackground'] = '#E32636' # колір фону після повторного натискання (або під час розміщення курсора # над кнопкою) butt['fg'] = '#333399' # колір тексту після натискання butt['activeforeground'] = '#FDE910' # колір тексту після повторного натискання (або під час розміщення # курсора над кнопкою) butt.config(command=change) # command установлює дію на кнопку butt.pack() # розміщення кнопки у вікніroot.mainloop() # задання команди відображення вікна при запускуfrom tkinter import * # імпортування графічної бібліотеки root = Tk() # створення головного вікна frame = Frame(root) # створення фрейму, у якому розміщуватимуться кнопкиframe.pack() def write(): # створення функції для друку фрази print("I like Tkinter!") # створення кнопки для друкуtk_button = Button(frame, text="Tkinter", command=write)tk_button.pack(side=LEFT) # створення кнопки, що закриває вікно (вбудована команда quit)quit_button = Button(frame, text="QUIT", fg="red", command=quit)quit_button.pack(side=LEFT) root.mainloop() # задання команди відображення вікна при запуску