Створення базового вікна:
from Tkinter import * root = Tk () root.title ("Найпростіший GUI") root.geometry ("320x240") # ВІДЖЕТИ root.mainloop ()
from Tkinter import * – Виклик модуля Tkinter
root = Tk () – створення головного вікна із назвою root
root.title (“Найпростіший GUI”) – назва вікна
root.geometry (“320×240”) – розміри вікна в пікселях
# ВІДЖЕТИ – розміщення віджетів (надписів, полів вводу, кнопок, списків…)
root.mainloop() – постійна робота головного вікна і його об’єктів до моменту, коли воно буде закрито
Віджети:
from Tkinter import * root = Tk() root.title("Віджети GUI") root.geometry("640x480") lbl = Label(root, text="Це мітка", font="Arial 18") lbl.pack() ent = Entry(root, width=50, bd=2) ent.pack() btn = Button(root, text="Кнопка", width=20, height=2, bg="white", fg="red") btn.pack() txt = Text(root, width=20, height=10, font="Verdana 12", wrap=WORD) txt.pack () cnv = Canvas(root, width=500, height=200, bg="lightblue", cursor="pencil") cnv.pack () root.mainloop()
Розміщення віджетів:
Для розміщення віджетів у вікні використовуються класи: pack, grid та place.
.pack() – розміщення віджетів блоками (має властивість side=’…’, що може приймати значення left, right, top, bottom )
.grid() – розміщення віджетів в таблиці (має властивості row і column. Наприклад: .grid(row=1,column=2))
from Tkinter import * root = Tk () root.title ("Розміщення віджетів") lbl = Label(root, text="комірка(0,0) рядок-0, \n стовпець-0", font="Arial 18") lbl.grid(row=0,column=0) lbl = Label(root, text="комірка(2,0) рядок-3, \n стовпець-0", font="Arial 18") lbl.grid(row=3,column=0) lbl = Label(root, text="комірка(2,1) рядок-2, \n стовпець-1", font="Arial 18") lbl.grid(row=2,column=1) lbl = Label(root, text="комірка(3,3) рядок-3, \n стовпець-3", font="Arial 18") lbl.grid(row=3,column=3) root.mainloop ()
.place() – розміщення віджетів за координатами (наприклад: .place(x=100, y=200))
from Tkinter import * root = Tk () root.title ("Розміщення віджетів") lbl = Label(root, text="координата(0,0) x-0, \n y-0", font="Arial 14") lbl.place(relx=0,rely=0) lbl = Label(root, text="координата(0.5,0.2) x-0.5, \n y-0.5", font="Arial 14") lbl.place(relx=0.5,rely=0.5) lbl = Label(root, text="кооордината(0.25,0.75) x-0.25, \n y-0.75", font="Arial 14") lbl.place(relx=0.25,rely=0.75) lbl = Label(root, text="координата(100,100) x-100, \n y-100", font="Arial 14") lbl.place(x=100,y=100) root.mainloop ()
Атрибути віджетів:
Label – однорядкове текстове поле для створення надписів.
Основні параметри: fg=’…’ – колір тексту; font= (…) – параметри тексту (шрифт, розмір, спосіб написання); bg=’…’ – колір фону; width=…, height=… – ширина і довжина у символах.
Entry – однорядкове текстове поле для введення даних.
Має такі параметри: bg=’…’ – колір фону; bd=’…’ – товщина рімки; font=’…’ – параметри шрифту; fg=’…’ – колір тексту; width=…, height=… – ширина і довжина у символах.
Button – кнопка.
Основні параметри: text=’…’ – текст, що розміщується на кнопці; bg=’…‘ – колір фону; fg=’…’ – колір тексту; width=’…’, height=’…’ – ширина і довжина у пікселях; command – посилання на функцію обробника подій.
Text – текстове поле для введення любої кількості тексту.
Основні параметри: background =’…’ – колір фону; foreground =’…’ – колір тексту; font= (…) – параметри тексту (шрифт, розмір, спосіб написання); justify=’…’ – вирівнювання тексту (може приймати значення left, right, center); wrap=’…’ – перенесення тексту (може приймати значення CHAR, WORD).
Canvas – полотно для малювання.
Основні параметри: bg=’…‘ – колір фону; width=’…’, height=’…’ – ширина і довжина у пікселях ; cursor=”…” – вигдяд курсору.
Для малювання використовуються такі команди:
Лінія – .create_line(x1, y1, х2, у2, fill=’…’, dash=(…, …)); x1, y1, х2, у2 – координати точок лінії; fill=’…’ – колір лінії; dash=(…, …) – пунктирна лінія; width=… – товщина лінії.
Прямокутник – .create_rectangle(x1, y1, х2, у2, fill=’…’, outline=’…’, width=…); x1, y1, х2, у2 – координати двох крайніх точок прямокутника; fill=’…’ – колір прямокутника; outline=’…’ – колір лінії прямокутника; width=… – товщина лінії.
Овал – .create_oval (x1, y1, x2, y2, fill=’…’, outline=’…’, width=…); x1, y1, х2, у2 – координати двох крайніх точок прямокутника в який вписується овал; fill=’…’ – колір овала; outline=’…’ – колір лінії; width=… – товщина лінії.
Багатокутник – .create_polygon (x1, y1, x2, y2, …, xn, yn, fill=’…’, outline=’…’, width=…); x1, y1, х2, у2, xn, yn – координати усіх точок багатокутника; fill=’…’ – колір багатокутника; outline=’…’ – колір лінії; width=… – товщина лінії.