# для версії python 2.7
і нище
from Tkinter import *
# для версії python 3.0
і вище
from tkinter import *
from tkinter import *
назва_вікна
= Tk()
назва_вікна.mainloop()
назва_вікна['властивість']='значення'
·
bg - Колір фону вікна.
(white,
black, red, green, blue, cyan, yellow, magenta … і хекс кольори #rrggbb (від 0
до f)
·
bd - Ширина межі в пікселях;
·
relief - Рельєф межі.
(flat,
groove, raised, ridge, solid, sunken)
·
cursor - Курсор, який з’являється, коли миша
знаходиться у цьому вікні.
(arrow,
circle, clock, cross, dotbox, exchange, fleur, heart, man, mouse, pirate, plus,
shuttle, sizing, spider, spraycan, star, target, tcross, trek, watch)
·
width - Бажана ширина вікна.
Методи (функції) вікна (не всі - їх
є багато)
назва_вікна.метод('значення')
·
title
- заголовок вікна
window.title("завдання 1") # назвати вікно - завдання 1
·
minsize і maxsize - мінімальний / максимальний розмір
вікна. Методи приймають два аргументи - ширина і висота вікна. Якщо не вказано
жодних аргументів - повертають поточне значення.
window.minsize("мінімальна_ширина","мінімальна_довжина")
window.maxsize("максимальна_ширина","максимальна_довжина")
·
resizable - чи може користувач змінювати розмір вікна. Приймає два аргументи -
можливість зміни розміру по горизонталі і по вертикалі. Без аргументів повертає
поточне значення.
window.resizable(False, True) # забороняє розтягувати по ширині
#
але дозволяє по висоті
·
geometry - встановлює геометрію вікна в форматі
ширина x висота + відступ_зліва(х) + відступ_зверху(y)
window.geometry("600x400+40+80") # помістити вікно в точку з
# координатами 40,80
# і встановити розмір в 600 на 400
Розмір або координати можуть бути опущені
window.geometry("600x400") # тільки змінити розмір
window.geometry("+40+80") # тільки перемістити вікно
Button (Кнопка)
Button (Кнопка) використовується для
відображення кнопок у вашій програмі.
назва_кнопки
= Button(назва_вікна,властивість="значення",...)
Властивості(не всі):
·
text
- який текст буде відображений на кнопці (в прикладі - ок)
·
height, width - відповідно,
довжина і ширина. Ширина мітки в символах
(не пікселів!). Якщо ця опція не встановлена, мітка буде розміром відповідно до
її вмісту.
·
bg
- колір кнопки; fg - колір тексту на кнопці;
·
font
- шрифт і його розмір (в прикладі - arial,
розмір - 14)
·
activebackground - встановлення кольору фону, коли кнопка знаходиться під
курсором.
·
activeforeground - встановлення кольору переднього плану, коли кнопка
знаходиться під курсором.
·
command - для виклику функції.
·
image - встановлення зображення на кнопці.
·
state - Встановіть цей параметр на DISABLED, щоб кнопка сіра була відтінками та не
відреагувала. Має значення ACTIVE, коли миша над
ним. За замовчуванням - NORMAL.
Messagebox (Вікно
повідомлення)
messagebox (Вікно повідомлення) використовується
для відображення вікон повідомлень у ваших програмах.
from tkinter import
messagebox
messagebox.showinfo("Заголовок вікна", "Текст всередині вікна")
Tkinter
включає кілька інших вікон повідомлень:
·
showerror()
·
showwarning()
·
showinfo()
Label - це віджет, призначений для відображення будь-які написи
без можливості редагування користувачем.
назва_напису =
Label(назва_вікна,властивість="значення",...)
Entry (Поле вводу) використовується для
відображення однорядкового текстового поля для прийому значень від користувача.
назва_введення =
Entry(назва_вікна,властивість="значення",...)
Методи (функції) поля введення (не всі - їх є багато)
·
delete(first, last=None) Видаляє символи з віджета, починаючи з першого
в індексі, аж до останнього символу в
останньому місці. Якщо другий аргумент опущений, видаляється лише один символ у
позиції.
·
get() Повертає поточний текст запису у вигляді рядка.
·
insert ( index, s ) Вставляє рядок s перед символом у заданому індексі.
Text - це віджет, який дозволяє
користувачеві ввести будь-яку кількість
тексту. Має додаткове властивість wrap,
що відповідає за перенесення (щоб, наприклад, переносити за словами, потрібно
використовувати значення WORD).
назва_поля
= Text(назва_вікна, властивість="значення",...)
Методи insert, delete і get додають,
видаляють або витягають текcт. Перший аргумент - місце вставки у вигляді 'x.y',
де x - це рядок, а y - стовпець. наприклад:
text1.insert(1.0,
'Додати Текст \n в початок першого рядка')
text1.get('1.0', END) # Витягти все
text1.delete(
'1.0', END) # Видалити все
Checkbutton - це віджет, який дозволяє відзначити
"галочкою" певний пункт у вікні. При використанні декількох пунктів
потрібно кожному привласнити свою змінну.
назва_змінної
= IntVar()
назва_прапорця
= Checkbutton(назва_вікна, text="значення",
variable=
назва_змінної,
onvalue = 1,
offvalue = 0)
Віджет Radiobutton виконує функцію, схожу з
функцією віджета Checkbutton. Різниця в тому, що в міні-програмі Radiobutton
користувач може вибрати лише один з
пунктів. Реалізація цього віджета дещо інша, ніж віджета Checkbutton.
назва_змінної
= IntVar()
назва_ перемикача1= Radiobutton(назва_вікна, text="значення1",
variable=
назва_змінної, value = 1)
назва_ перемикача1= Radiobutton(назва_вікна, text="значення2",
variable=
назва_змінної, value = 2)
Canvas (Полотно) використовується для
малювання фігур, таких як лінії, овали, багатокутники та прямокутники у вашій
програмі.
Властивості(не всі):
bd, bg, cursor, width, height
Віджет Canvas може підтримувати наступні стандартні елементи:
arc - Створює дуговий елемент, який може
бути акордним, підвіскою або простою дугою.
coord = 10,
50, 240, 210
arc =
canvas.create_arc(coord, start=0, extent=150, fill="blue")
image - створює елемент зображення, який
може бути екземпляром або BitmapImage,
або класів PhotoImage.
filename =
PhotoImage(file = "sunshine.gif")
image =
canvas.create_image(50, 50, anchor=NE, image=filename)
line - Створення рядка-позиції.
line =
canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)
rectangle - Створення прямокутника.
rectangle =
canvas.create_rectangle(50, 25, 150, 75, fill="blue")
oval - Створює коло або еліпс у заданих
координатах. Вона займає дві пари координат; верхній лівий і нижній правий кути
обмежувального прямокутника для овалу.
oval =
canvas.create_oval(x0, y0, x1, y1, options)
polygon - Створює елемент багатокутника,
який повинен мати принаймні три вершини.
polygon =
canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)
У Tkinter є три пакувальника: pack, place,
grid.
· pack ()
·
side ("left" /
"right" / "top" / "bottom") - до якої
сторони повинен примикати розміщується віджет.
·
fill (None / "x" /
"y" / "both") - необхідно розширювати простір
надається віджету.
·
expand (True / False)
- чи потрібно розширювати сам віджет, щоб він зайняв все надане йому простір.
button1.pack(side='left')
button2.pack(side='top')
· grid ()
Цей пакувальник є таблицею з
осередками, в які поміщаються віджети.
Аргументи
·
row - номер
рядка, в який поміщаємо віджет.
·
rowspan - скільки
рядків займає віджет
·
column - номер
стовпця, в який поміщаємо віджет.
·
columnspan
- скільки стовпців займає віджет.
entry1.grid(row=0,column=0,columnspan=3)
button1.grid(row=1,column=0)
button2.grid(row=1,column=1)
button3.grid(row=1,column=2)
· place ()
button1.place(x=0,y=0)
Аргументи
· anchor ( "n", "s", "e", "w", "ne", "nw", "se", "sw" або "center") -
який кут або сторона розміщується віджета буде вказана
в аргументах x / y / relx / rely. За замовчуванням "nw" - лівий верхній
· bordermode ( "inside", "outside", "ignore") - визначає в якій мірі в
раховуватимуться кордону при розміщенні віджета.
· in_ - явне вказівку в якій батьківський віджет повинен бути поміщений.
· x і y - абсолютні координати (в пікселях) розміщення віджета.
· width і height - абсолютні ширина і висота віджету.
· relx і rely - відносні координати (від 0.0 до 1.0) розміщення віджета.
· relwidth і relheight - відносні ширина і висота віджету.
В Python
обробником подій є функція.
def func_one():
print('Привіт, школа!')
func_one()
button =
Button(command = callback)
widget.bind("z", callback)
widget.bind("z", callback)
Cписок модифікаторів
Return -
Enter
Escape - Esc
Control -
Ctrl
Alt
Shift
Lock
Extended
Prior -
PgUp
Next -
PgDown
Button1, B1 -
натиснута перша (ліва) кнопка миші
Button2, B2 -
друга (середня) кнопка миші
Button3, B3 -
третя (права)
Button4, B4 -
четверта
Button5, B5 -
п'ята
Mod1, M1, Command
Mod2, M2, Option
Mod3, M3
Mod4, M4
Mod5, M5
Meta, M
Double -
подвійне клацання миші (наприклад, <Double-Button-1>)
Triple - потрійний
Quadruple - четверний
Типи
подій
Тут
перераховані всі можливі типи подій, для самих часто використовуваних дано
опис.
Activate,
Deactivate
MouseWheel
- прокрутка колесом миші
KeyPress,
KeyRelease - натиснення і відпуск клавіші на клавіатурі
ButtonPress,
ButtonRelease, Motion - натискання, відпускання кнопки миші, рух мишею
Configure
- зміна положення або розміру вікна
Map,
Unmap - показування або приховування вікна (наприклад, в разі згортання /
розгортання вікна користувачем)
Visibility
Expose
- подія генерується, коли необхідно все вікно або його частина перемалювати
Destroy
- закриття вікна
FocusIn,
FocusOut - отримання або позбавлення фокуса
Enter,
Leave - Enter генерується коли курсор миші "входить" в вікно,
Leave - коли "йде" з вікна
Property
Colormap
MapRequest, CirculateRequest, ResizeRequest,
ConfigureRequest, Create
Gravity, Reparent, Circulate
Клавіатурні символи
<Button-1> або <1> - натиснута ліва клавіша миші.
<Alt-Motion> - рух мишею з натиснутою на клавіатурі клавішею Alt.
<Key> -
натискання будь-якої клавіші на клавіатурі.
Введення
Введення даних можна здійснювати з
клавіатури в консольному режимі
n=int(input('Введіть кількість:')) — значення змінної n — ціле число;
t=float(input('Введіть значення
нормальної температури тіла людини:')) — значеная змінної t — дійсне число;
а= input ('Як тебе звати?') —значення змінної а — рядкова величина.
b=bool(input (Введіть правда (True)
чи брехня(False)?'))
—значення змінної b — логічна
величина.
Для поля вводу або багаторядкового
поля можна застосовувати вбудовані методи
Методи insert, delete і get додають, видаляють або витягають
текcт.
Приклади введення з текстових полів:
a=Entry1.get()
#значення
змінної а - рядкова величина.
n=int(Entry1.get())
#значення
змінної n - ціле число;
s =
text1.get('1.0', END) # Витягти
все
#(Перший аргумент - місце вставки
# у вигляді 'x.y',
# де x - це рядок, а y – стовпець)
Приклад виводу на Напис(мітку):
Lab1 =
Label(window,text="текс який буде
виводитися")
Приклад виводу з допомогою змінної:
var =
StringVar()
label =
Label(window, textvariable=var)
var.set("текс який буде виводитися")
Неповний оператор (розгалуження) має такий
вигляд:
if a==b:
print('true')
Повний оператор (розгалуження) має такий
вигляд:
if a==b:
print('true')
else:
print('false')
if a==b:
print('true')
elif:
print('false')
else:
print('false')
Цикл for
for х in range(n) :
<тіло
циклу>
Цикл while
i = 0
while i < 100:
if i % 2 == 0:
print (i)
i = i + 1
Немає коментарів:
Дописати коментар