Tkinter - Проєкт "Подорожі"
Для онлайнової роботи скористаємось сервісом: https://repl.it/languages/
Також можна встановити середовище програмування на свій мобільний пристрій https://play.google.com/store/apps/details?id=ru.iiec.pydroid3&hl=uk
У проекті потрібно створити 3 кнопки, 2 написи (текстовий і для зображення), а також прапорець. Клацання на прапорець визначає, який тип фотографії буде показано (денна чи нічна).
Скористаємось заготовкою коду:
from tkinter import *
root = Tk()
root.title("Найпростіше вікно")
root.geometry("400x300")
root.mainloop()
Всі наступні команди потрібно розміщувати перед командою root.mainloop()
Написи
label = Label (root, text="Hello, world!") # вказуємо, де створюється напис з іменем label, і його текстовий вміст
label.pack() # розміщення на формі
label2 = Label (root, text="Hello, world!") # вказуємо, де створюється напис з іменем label2, і його текстовий вміст
label2.pack() # розміщення на формі
Прапорець
result = IntVar() # змінна для збереження значення прапорця
praporets = Checkbutton (root, text = "нічні фото", variable = result , onvalue = 1, offvalue = 0, height=5, width = 20) # прапорець з текстом, збереженням у змінну, значеннями при позначенні та знятті позначки, певного розміру
praporets.pack(side=RIGHT, padx=5, pady=5) # розміщення на формі, вирівнювання справа, відступи
Кнопка
knopka=Button(root, text="London", command=london_show) # вказуємо, де створюється кнопка knopka, її текстовий вміст та назва функції, яка викликається при натисненні цієї кнопки
knopka.pack(side=TOP, padx=5, pady=5) # розміщення кнопки на формі: вирівнювання згори, відступи по 5 пікселів по x та y
Функція, яка викликається цією кнопкою змінює текст напису на текст про Лондон, а другого - на зображення Лондона, залежно від того, чи натиснуто прапорець . Це описано так:
def london_show():
label.configure(text="London is the capital of Great Britain") #оновлення тексту в написі
global photo # глобальна змінна, яку будемо оновлювати, залежно від позначеності прапорця
if result.get()==1: # якщо прапорець позначено
photo = PhotoImage(file="london_night.gif") # у змінну photo записуємо фото london_night.gif
else:
photo = PhotoImage(file="london_day.gif") # у змінну photo записуємо фото london_night.gif
label2.configure(image = photo) #показ файлу photo у написі
Зверніть увагу, що визначення функції reply має розміщуватись до опису кнопки, бажано на початку програми.Додати зображення до проекту онлайн можна кнопкою Додати файли (Upload file):
Зверніть увагу, що зображення мають бути у форматі gif. Можна взяти ці два зображення тут: london_day та london_night
Таким чином, весь текст проекту на даний момент такий:
def london_show():label.configure(text="London is the capital of Great Britain")global photoif result.get()==1:photo = PhotoImage(file="london_night.gif")else:photo = PhotoImage(file="london_day.gif")label2.configure(image = photo)from tkinter import *root = Tk()root.title("Найпростіше вікно")root.geometry("400x300")label = Label (root, text="Hello, world!")label.pack()label2 = Label (root, text="Hello, world!")label2.pack()result = IntVar()praporets = Checkbutton (root, text = "нічні фото", variable = result, onvalue = 1,offvalue = 0, height=5, width = 20)praporets.pack(padx=5, pady=5)knopka=Button(root, text="London", command=london_show)knopka.pack(side=TOP, padx=5, pady=5)root.mainloop()
Завдання.
Доповнити проект ще двома кнопками (наприклад, Берлін та Париж), які мають власні функції обробки клацань.