Вікна у Python (Основи роботи з Tkinter)

Створення базового вікна:

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() – постійна робота головного вікна і його об’єктів до моменту, коли воно буде закрито

Все про Tkinter 

Віджети:

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=… – товщина лінії.