Tkinter - Проект "Подорожі"

Для онлайнової роботи скористаємось сервісом:  https://repl.it/languages/tkinter (якщо програма перестає запускатись, скопіюйте свій код та запустіть це посилання знову)

Також можна встановити середовище програмування на свій мобільний пристрій 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 photo
if 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()


Завдання. 

Доповнити проект ще двома кнопками (наприклад, Берлін та Париж), які мають власні функції обробки клацань.

Остання зміна: вівторок 7 квітня 2020 8:16