Напис (клас Label)
Кнопка (клас Button)
pack()
place(x=a, y=b)
grid(row=a,column=b) a-рядок, b-стовпчик (починати з 0)
вікно (root)
Розмір / метод .geometry(100x200),
Мінімальний і максимальний розмір/ методи .minsize(300,400) root.maxsize(700,800)
Колір тла / метод .config(bg="yellow ")
Завершити програму / метод .mainloop()
Дати назву вікна / метод .title("Моє перше програмне вікно")
напис(l1,l2) (задавали у дужках при описуванні класу через кому/ вікно, text=" що написано", шрифт, розмір шрифту, колір тла і літер, ширина і висота напису тощо)
кнопка(btn1,btn2) (задавали у дужках при описуванні класу через кому/ вікно, text=" що написано", шрифт, розмір шрифту, колір тла і літер, ширина і висота напису тощо) і параметр - прив'язка до події comand=ім'я функції
Після підключення модуля tkinter*
Створюється функція з відповідною назвою def......:, у якій прописані дії, які будуть відбуватися
• <Button-3> — клацання правою кнопкою миші;
• <Double-Button-1> — подвійне клацання лівою кнопкою миші;
• <Motion> — рух миші.
При описі події натискання клавіш клавіатури літерні клавіші можна записувати без кутових дужок (наприклад, ’L’). Для неалфавітних клавіш існують спеціальні зарезервовані слова:
• <Return> — натискання клавіші Enter;
• <Space> — пропуск;
• <Control> — натискання клавіші Ctrl;
• <Shift> — натискання клавіші Shift;
• <z> — натискання клавіші z.
В останньому випадку замість z можна використовувати будь-який символ клавіатури, що містить літеру. Назву події натисканні комбінації клавіш вказують через дефіс. Наприклад: <Control-a> або <Control-Shift>.
Зв’язувати об’єкт керування, подію та дію можна й за допомогою методу bind. У функцій-обробників, які викликають через bind, а не через властивість command, має обов’язково бути параметр event,
через який передається подія.
Тоді виклик цієї функції задається конструкцією:
Об’єкт bind('<подія>', назва_функції)
from tkinter import*
root=Tk()
root.geometry("300x200")
root["bg"]="white"
root.resizable(0,0)
root.rowconfigure(0,minsize=100)
root.rowconfigure(1,minsize=100)
root.columnconfigure(0,minsize=120)
root.columnconfigure(1,minsize=120)
root.columnconfigure(2,minsize=120)
root.mainloop()
from tkinter import*
def green():
root["bg"]="green"
message["text"]="Ви обрали зелений колір"
def yellow():
root["bg"]="yellow"
message["text"]="Ви обрали жовтий колір"
def red():
root["bg"]="red"
message["text"]="Ви обрали червоний колір"
root=Tk()
root.geometry("300x200")
root["bg"]="white"
root.resizable(0,0)
message = Label(root, text="Ви не обрали колір", font="Arial 16", bg="white")
message.grid(row=0, column=0, columnspan=3)
but_green=Button(root, text="Зелений", font="Arial 16", bg="green", command=green)
but_green.grid(row=1, column=0)
but_yellow=Button(root, text="Жовтий", font="Arial 16", bg="yellow", command=yellow)
but_yellow.grid(row=1, column=1)
but_red=Button(root, text="Червоний", font="Arial 16", bg="red", command=red)
but_red.grid(row=1, column=2)
root.rowconfigure(0,minsize=100)
root.rowconfigure(1,minsize=100)
root.columnconfigure(0,minsize=120)
root.columnconfigure(1,minsize=120)
root.columnconfigure(2,minsize=120)
root.mainloop()
Створити напис Ви не обрали колір і розпакували(розмістили) його у першому рядку, першому стовпцю - об'єднавши три стовпця)
Створити три кнопки
btn_green
btn_yellow
btn_red
ці кнопки розміщені в одному вікні (root, text="підписані відповідним кольором",bg="колір тла відповідна назва",command=прив'язка до відповідної функції)
Розміщені всі три кнопки у другому рядку, але кожна кнопка в окремому стовпцю.
До прив'язок green yellow red з параметру command
створити три функції (обробники подій)
def green(): def yellow(): def red():
Функції кажуть змінити колір вікна на відповідний
root["bg"]="green" root["bg"]="yellow"
root["bg"]="red"
І текст напису на відповідний дії
message["text"]="Ви обрали зелений колір"
message["text"]="Ви обрали жовтий колір"
message["text"]="Ви обрали червоний колір"
from tkinter import*
def green():
root["bg"]="green"
message["text"]="Ви обрали зелений колір"
def yellow():
root["bg"]="yellow"
message["text"]="Ви обрали жовтий колір"
def red():
root["bg"]="red"
message["text"]="Ви обрали червоний колір"
root=Tk()
root.geometry("360x200")
root["bg"]="white"
root.resizable(0,0)
message = Label(root, text="Ви не обрали колір", font="Arial 16", bg="white")
message.grid(row=0, column=0, columnspan=3)
but_green=Button(root, text="Зелений", font="Arial 16", bg="green", command=green)
but_green.grid(row=1, column=0)
but_yellow=Button(root, text="Жовтий", font="Arial 16", bg="yellow", command=yellow)
but_yellow.grid(row=1, column=1)
but_red=Button(root, text="Червоний", font="Arial 16", bg="red", command=red)
but_red.grid(row=1, column=2)
root.rowconfigure(0,minsize=100)
root.rowconfigure(1,minsize=100)
root.columnconfigure(0,minsize=120)
root.columnconfigure(1,minsize=120)
root.columnconfigure(2,minsize=120)
root.mainloop()
1) Бо це працює тільки з кнопками.
2) І працює тільки ліва клавіша миші.
.bind
from tkinter import*
def green(event):
root["bg"]="green"
message["text"]="Ви обрали зелений колір"
def yellow(event):
root["bg"]="yellow"
message["text"]="Ви обрали жовтий колір"
def red(event):
root["bg"]="red"
message["text"]="Ви обрали червоний колір"
def cancel(event):
root=Tk()
root.geometry("360x200")
root["bg"]="white"
root.resizable(0,0)
message = Label(root, text="Ви не обрали колір", font="Arial 16", bg="white")
message.grid(row=0, column=0, columnspan=3)
but_green=Button(root, text="Green", font="Arial 16", bg="green")
but_green.bind("<Button-1>",green)
but_green.grid(row=1, column=0)
but_yellow=Button(root, text="Жовтий", font="Arial 16", bg="yellow")
but_yellow.bind("<Button-3>",yellow)
but_yellow.grid(row=1, column=1)
but_red=Button(root, text="Червоний", font="Arial 16", bg="red")
but_red.bind("<Motion>",red)
but_red.grid(row=1, column=2)
root.bind("<Return>",cancel)
root.rowconfigure(0,minsize=100)
root.rowconfigure(1,minsize=100)
root.columnconfigure(0,minsize=120)
root.columnconfigure(1,minsize=120)
root.columnconfigure(2,minsize=120)
root.mainloop()
-вказують об'єкт до якого застосовано метод
but_green.bind("<Button-1>",green)
у параметрах виводять два параметра:
перший - подія, яка виконується "<Button-1>" це натискання лівої кнопки миші
другий - функція, яка буде виконуватися, коли буде виконана ця подія (натискання ЛКМ) green
АНАЛОГІЧНО
but_yellow.bind("<Button-3>",yellow)
"<Button-3>" це натискання правої кнопки миші
"<Motion>" це наведення миші
ОДНОЧАСНО
відбуваються певні налаштування в оголошенні функції, з'являється аргумент event
який каже, що підв'язали цю функцію до події
def green(event):
def yellow(event):
def red(event):
Застосуємо подію до вікна
root.bind("<Return>",cancel)
Подія - натискання клавіші enter виконується функція cancel повернення вікна до першочергового стану
from tkinter import*
def green(event):
root["bg"]="green"
message["text"]="Ви обрали зелений колір"
def yellow(event):
root["bg"]="yellow"
message["text"]="Ви обрали жовтий колір"
def red(event):
root["bg"]="red"
message["text"]="Ви обрали червоний колір"
def cancel(event):
root=Tk()
root.geometry("360x200")
root["bg"]="white"
root.resizable(0,0)
message = Label(root, text="Ви не обрали колір", font="Arial 16", bg="white")
message.grid(row=0, column=0, columnspan=3)
but_green=Button(root, text="Green", font="Arial 16", bg="green")
but_green.bind("<Button-1>",green)
but_green.grid(row=1, column=0)
but_yellow=Button(root, text="Жовтий", font="Arial 16", bg="yellow")
but_yellow.bind("<Button-3>",yellow)
but_yellow.grid(row=1, column=1)
but_red=Button(root, text="Червоний", font="Arial 16", bg="red")
but_red.bind("<Motion>",red)
but_red.grid(row=1, column=2)
root.bind("<Return>",cancel)
root.rowconfigure(0,minsize=100)
root.rowconfigure(1,minsize=100)
root.columnconfigure(0,minsize=120)
root.columnconfigure(1,minsize=120)
root.columnconfigure(2,minsize=120)
root.mainloop()