четвер, 17 жовтня 2019 р.

Python 8 клас (легко)


Теорія-книжочка
Імпорт в різних версіях
# для версії python 2.7 і нище
from Tkinter import *

# для версії python 3.0 і вище
from tkinter import *
Tk (Головне вікно)
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 - Бажана ширина вікна.
·        height - Висота вікна.

Методи (функції) вікна (не всі - їх є багато)

назва_вікна.метод('значення')


·        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

Немає коментарів:

Дописати коментар