Тема: Створення текстових полів. Створення перемикачів та прапорців.
Завдання №1. Створення текстових полів.
1. Створіть новий файл Python та підключіть відповідний модуль. Створіть нове вікно світло червоного кольору із розмірами 600 на 700 пікселів із забороною змінювати розміри вікна. Створити текстове поле (всі атрибути встановити за власним бажанням), кнопку поруч із текстовим полем (текст «Ок», колір білий, шрифт “Calibri 13”), та напис із початковим текстом «Ви нічого не ввели». Після натискання на кнопку текст напису повинен змінитися на введений користувачем.
2. Створіть вікно жовтогарячого кольору з розмірами 600х600 та з заголовком “Перше вікно”. Створіть текстове поле будь-якого кольору. Ширина поля 30 знаків та шрифт “Calibri 12”. Створіть напис, колір тексту темно-синій, шрифт аналогічний полю. При натисканні правою клавішею по області вікна, текст напису буде змінюватися на введений користувачем та виводитися на екран вікно повідомлення з заголовком “Підтвердження події” та з змістом “Дія виконана!””.
3. Створіть вікно з розмірами 875х578 з заголовком «Це є вікно :)». Створіть текстове поле з шириною у 35 знаків, та розмістити його на 100 пікселів від лівого краю та на 100 пікселів від верхнього краю. В поле користувач буде вводити ціле число. При натисканні правою клавішею миші по області поля на екран буде виводитися вікно повідомлення із добутком введеного числа на нього самого. Заголовок вікна повідомлення та колір фону головного вікна встановити самостійно.
Приклад виконання вправи №1:
| from tkinter import* Win = Tk() def start(event): label1[“text”]=entry1.get() Win.title(“Вікно №1”) Win[“bg”]=”#E32636″ Win.geometry(“600×700”) Win.resizable(0,0) but= Button(Win, width=2, height=1, bg=”blue”, text=”Ok”, fg=”white”, font=”Calibri 13″) but.place(x=30, y = 40) but.bind(“<Button-1>”, start) entry1=Entry(Win, bg=”white”, width=30, font=”Calibri 13″) entry1.place(x=60, y=40) label1=Label(Win, text=”Ви нічого не ввели”, font=”Calibri 13″, bg=”blue”, fg=”white”) label1.place(x=80, y=5) Win.mainloop() |
Вікно до введення тексту і після введення і натискання на кнопку:

Приклад виконання вправи №2:
| from tkinter import* from tkinter import messagebox Win = Tk() def start(event): label1[“text”]=entry1.get() messagebox.showinfo(“Підтвердження події”,”Дія виконана”) Win.title(“Вікно №1”) Win[“bg”]=”#f0c020″ Win.geometry(“600×600”) Win.resizable(0,0) entry1=Entry(Win, bg=”white”, width=30, font=”Calibri 12″) entry1.place(x=60, y=40) label1=Label(Win, text=”Ви нічого не ввели”, font=”Calibri 12″, bg=”dark blue”, fg=”white”) label1.place(x=80, y=5) Win.bind(“<Button-3>”, start) Win.mainloop() |
Приклад виконання вправи №3:
| from tkinter import* from tkinter import messagebox Win = Tk() def start(event): a = int(entry1.get()) messagebox.showinfo(“Добуток”, str(a*a)) Win.title(“Це є вікно :)”) Win[“bg”]=”PINK” Win.geometry(“875×578”) Win.resizable(0,0) Win.bind(“<Button-3>”, start) entry1=Entry(Win, bg=”white”, width=35, font=”Calibri 13″) entry1.place(x=100, y=100) Win.mainloop() |
Завдання №2. Створення перемикачів та прапорців.
1. Вдосконалити останній приклад, додавши до програми всі можливі комбінації вибору.
2. Створіть новий файл Python та нове вікно із заголовком “Магазин морозива”. Створіть дві групи перемикачів. Над першою групою створіть напис “Оберіть тип морозива”. В першій групі буде три перемикачі із типами морозива: ванільне, шоколадне, фруктове. Над другою групою створіть напис “Оберіть розмір ріжку”. В цій групі буде також три перемикачі із розмірами ріжку: маленький, середній та великий. В залежності від вибору користувача на екран буде виводитися відповідне вікно з повідомленням. Наприклад, якщо користувач вибере фруктове морозиво у маленькому ріжку, то на екран виведеться вікно з повідомленням “Ви вибрали фруктове морозиво у маленькому ріжку”.
3. Створіть новий файл Python та нове вікно із заголовком “Магазин морозива 2”. Створіть групу перемикачів. Над першою групою створіть напис “Оберіть тип морозива”. В групі буде три перемикачі із типами морозива: ванільне, шоколадне, фруктове. Поруч створити два прапорці типами присипки: шоколадна присипка, кокосова стружка. Також над ними напис “Оберіть тип присипки”. В залежності від вибору користувача буде виводитися вікно повідомлення із вибором користувача. Примітка. Розглянути всі можливі випадки.
Приклад виконання вправи №1 (дивись теоретичний матеріал):
| from tkinter import * def newtext(event): if prap1.get()==1 and prap4.get()==1: label1[“text”]=”Ви вибрали жовту гуаш” elif prap2.get()==1 and prap3.get()==1: label1[“text”]=”Ви вибрали зелену акварель” elif prap1.get()==1 and prap3.get()==1: label1[“text”]=”Ви вибрали жовту акварель” elif prap2.get()==1 and prap4.get()==1: label1[“text”]=”Ви вибрали зелену гуаш” Win=Tk() Win.geometry(“400×400”) label1=Label(Win, text=”Не вибрано”) label1.place(x=100,y=50) prap1=IntVar() prap2=IntVar() prap3=IntVar() prap4=IntVar() prapor1=Checkbutton(Win, text=”Жовтий”, variable=prap1, onvalue=1, offvalue=0) prapor1.place(x=100,y=100) prapor2=Checkbutton(Win, text=”Зелений”, variable=prap2, onvalue=1, offvalue=0) prapor2.place(x=100,y=120) prapor3=Checkbutton(Win, text=”Акварель”, variable=prap3, onvalue=1, offvalue=0) prapor3.place(x=100,y=160) prapor4=Checkbutton(Win, text=”Гуаш”, variable=prap4, onvalue=1, offvalue=0) prapor4.place(x=100,y=180) label1.bind(“<Button-1>”, newtext) Win.mainloop() |
Початкове вікно:

Вікно після встановлення прапорців і кліку по надпису «Не вибрано»:

Приклад виконання вправи №2:
| from tkinter import* from tkinter import messagebox def newtext(event): if group1.get()==1 and group2.get()==4: pov=’Ви обрали ванільне морозиво у маленькому ріжку’ elif group1.get()==1 and group2.get()==5: pov=’Ви обрали ванільне морозиво у середньому ріжку’ elif group1.get()==1 and group2.get()==6: pov=’Ви обрали ванільне морозиво у великому ріжку’ elif group1.get()==2 and group2.get()==4: pov=’Ви обрали шоколадне морозиво у маленькому ріжку’ elif group1.get()==2 and group2.get()==5: pov=’Ви обрали шоколадне морозиво у середньому ріжку’ elif group1.get()==2 and group2.get()==6: pov=’Ви обрали шоколадне морозиво у великому ріжку’ elif group1.get()==3 and group2.get()==4: pov=’Ви обрали фруктове морозиво у маленькому ріжку’ elif group1.get()==3 and group2.get()==5: pov=’Ви обрали фруктове морозиво у середньому ріжку’ elif group1.get()==3 and group2.get()==6: pov=’Ви обрали фруктове морозиво у великому ріжку’ messagebox.showinfo(title=’Ваш вибір’, message=pov) window=Tk() window.geometry(‘400×300’) window.title(‘Магазин морозива’) label=Label(window, text=’Оберіть тип морозива’) label.place(x=60, y=70) label=Label(window, text=’Оберіть розмір ріжку’) label.place(x=230, y=70) but=Button(window, text=’Підтвердити’) but.place(x=150, y=190) group1=IntVar() per1=Radiobutton(window, text=’Ванільне’, variable=group1, value=1) per1.place(x=70, y=100) per2=Radiobutton(window, text=’Шоколадне’, variable=group1, value=2) per2.place(x=70, y=120) per3=Radiobutton(window, text=’Фруктове’, variable=group1, value=3) per3.place(x=70, y=140) group2=IntVar() per4=Radiobutton(window, text=’Маленький’, variable=group2, value=4) per4.place(x=240, y=100) per5=Radiobutton(window, text=’Середній’, variable=group2, value=5) per5.place(x=240, y=120) per6=Radiobutton(window, text=’Великий’, variable=group2, value=6) per6.place(x=240, y=140) but.bind(‘<Button-1>’, newtext) window.mainloop() |
Приклад виконання вправи №3:
| from tkinter import* from tkinter import messagebox def newtext(event): if group1.get()==1 and prap1.get()==1 and prap2.get()==0: pov=’Ви обрали ванільне морозиво з шоколадною присипкою’ elif group1.get()==1 and prap1.get()==1 and prap2.get()==1: pov=’Ви обрали ванільне морозиво з шоколадною присипкою та кокосовою стружкою’ elif group1.get()==1 and prap2.get()==1: pov=’Ви обрали ванільне морозиво з кокосовою стружкою’ elif group1.get()==2 and prap1.get()==1 and prap2.get()==0: pov=’Ви обрали шоколадне морозиво з шоколадною присипкою’ elif group1.get()==2 and prap1.get()==1 and prap2.get()==1: pov=’Ви обрали шоколадне морозиво з шоколадною присипкою та кокосовою стружкою’ elif group1.get()==2 and prap2.get()==1: pov=’Ви обрали шоколадне морозиво з кокосовою стружкою’ elif group1.get()==3 and prap1.get()==1 and prap2.get()==0: pov=’Ви обрали фруктове морозиво з шоколадною присипкою’ elif group1.get()==3 and prap1.get()==1 and prap2.get()==1: pov=’Ви обрали фруктове морозиво з шоколадною присипкою та кокосовою стружкою’ elif group1.get()==3 and prap2.get()==1: pov=’Ви обрали фруктове морозиво з кокосовою стружкою’ messagebox.showinfo(title=’Ваш вибір’, message=pov) window=Tk() window.geometry(‘400×300’) window.title(‘Магазин морозива 2’) label=Label(window, text=’Оберіть тип морозива’) label.place(x=60, y=70) label=Label(window, text=’Оберіть тип присипки’) label.place(x=230, y=70) but=Button(window, text=’Підтвердити’) but.place(x=150, y=190) group1=IntVar() per1=Radiobutton(window, text=’Ванільне’, variable=group1, value=1) per1.place(x=70, y=100) per2=Radiobutton(window, text=’Шоколадне’, variable=group1, value=2) per2.place(x=70, y=120) per3=Radiobutton(window, text=’Фруктове’, variable=group1, value=3) per3.place(x=70, y=140) prap1=IntVar() prap2=IntVar() prapor1=Checkbutton(window, text=’Шоколадна присипка’, variable=prap1, onvalue=1, offvalue=0) prapor1.place(x=240, y=100) prapor2=Checkbutton(window, text=’Кокосова стружка’, variable=prap2, onvalue=1, offvalue=0) prapor2.place(x=240, y=120) but.bind(‘<Button-1>’, newtext) window.mainloop() |
Завдання лабораторної роботи:
1. Створити вікно з тестовими питаннями та варіантами відповідей за зразком. Файл з кодом назвати test.py.
| Питання та відповіді (курсивом виділені правильні відповіді) |
| 1. Драйвери – це: Регулюючі програми; Програми, що управляють; Пристрої, що управляють; Нічого з вище переліченого 2. Всі сучасні периферійні пристрої відповідають стандарту: Plug and Play Drag and Drop Технології OLE Нічого з вище переліченого 3. Який з перерахованих пристроїв введення відноситься до класу маніпуляторів: Тачпад; Джойстик; Мікрофон; Клавіатура 4. Важливою властивістю клавіатури є: Функціональність; Економічність; Ергономічність; Дизайн. 5. Пристрій введення інформації з листа паперу називається: Плоттер; Стример; Драйвер; Сканер. 6.Яка «миша» не працюватиме на прозорій скляній поверхні: Лазерно-механічна Оптична Опто-механічна Механічна 7. Клавіатури не бувають: Оптичні Механічні Напівмеханічні Мембранні 8. Термінал – це: пристрій підключення комп’ютера до телефонної мережі; пристрій зовнішньої пам’яті; комп’ютер користувача; комп’ютер-сервер 9. Поштова скринька – це: спеціальна технічна угода для роботи в мережі; назва програми для пересилки електронних листів; комп’ютер, який використовується для пересилки електронних листів; розділ зовнішньої пам’яті поштового сервера 10. Які пристрої не відносяться до пристроїв введення інформації: Клавіатура; Сканер; Звукові колонки; «Миша» |
| Схема вікна: При натисканні на кнопку повинно в Label вивестися повідомлення: ім`я, яке увів користувач, кількість правильних відповідей і який відсоток ці відповіді складають. |

Приклад вікна створеного завдання:
