4.3. Напис

Назад до змісту

Дайте відповіді на запитання

1. Для чого використовують напис?

Напис — це елемент керування, який потрібен для виведення текстових повідомлень у вікні програми.

2. Як створити напис?

Щоб створити напис, потрібно спочатку створити об’єкт типу Label і зв’язати його зі змінною. Потім можна встановити його властивості або залишити стандартні. Нарешті, напис потрібно розмістити у вікні. Це робиться за допомогою команди вигляду <ім’я_напису> = Label() або зразу з властивостями: <ім’я_напису> = Label(<набір властивостей та їх значень>).

3. Як можна встановити значення властивостей напису?

Значення властивостей напису можна встановити двома способами:

  • Безпосередньо при його створенні, вказавши їх у дужках: lb = Label(text='Привіт', font='Arial 14').
  • Окремими командами після створення напису, наприклад: label[‘width’] = 25.

4. Які ви знаєте властивості напису? Поясніть їх.

Я знаю такі властивості напису:

  • text: визначає текст, який буде відображатися на написі.
  • width: встановлює ширину напису в символах.
  • height: встановлює висоту напису.
  • bg: визначає колір фону напису.
  • fg: встановлює колір тексту.
  • font: задає шрифт та розмір тексту.
  • state: визначає стан напису (наприклад, активний чи неактивний).

5. Як розмістити напис у вікні?

Щоб розмістити напис у вікні, використовують методи pack() або place(). Наприклад, команда label.pack(pady=20) розмістить напис із відступом 20 пікселів від верхнього краю вікна.

Обговоріть і зробіть висновки

1. Що відбуватиметься, якщо довжина тексту, який виводиться на кнопку і в напис, більша за їх ширину?

Якщо під час створення напису не задати його ширину (властивість width), то вона автоматично встановиться за довжиною тексту. Якщо ж ширина задана, а текст довший, то частина тексту, яка не вміщується, не буде відображена.

2. З якою метою у вікні розміщують порожній напис?

Порожній напис розміщують у вікні як тимчасовий елемент. Його можна буде заповнити текстом або змінити його властивості пізніше під час виконання програми, наприклад, після натискання кнопки або виконання якоїсь дії. Це дозволяє динамічно виводити інформацію для користувача.

Виконайте завдання

Ось проєкти, створені за вашими завданнями.

1. Завдання 4.3.1

Цей проєкт змінює напис після одного натискання на нього.

from tkinter import *

def change_label(event):
    """Змінює ширину та текст напису"""
    label['width'] = 30
    label['text'] = 'вулиця Тараса Шевченка' # Впишіть сюди назву вашої вулиці# Створення головного вікна
root = Tk()
root.title("Завдання 1")

# Створення напису
label = Label(root, text="Натисни на мене")
label.pack(pady=20, padx=20)

# Прив'язка події натискання до напису
label.bind('<Button-1>', change_label)

# Запуск головного циклу
root.mainloop()

2. Завдання 4.3.2

Цей проєкт змінює напис після подвійного натискання на нього.

from tkinter import *

def change_label_on_dblclick(event):
    """Змінює висоту, шрифт та текст напису"""
    label['height'] = 3
    label['font'] = ('Arial', 16) # Збільшуємо розмір шрифту
    label['text'] = "Моє ім\\'я" # Впишіть сюди ваше ім'я# Створення головного вікна
root = Tk()
root.title("Завдання 2")

# Створення напису
label = Label(root, text="Натисни на мене двічі")
label.pack(pady=20, padx=20)

# Прив'язка події подвійного натискання до напису
label.bind('<Double-Button-1>', change_label_on_dblclick)

# Запуск головного циклу
root.mainloop()

3. Завдання 4.3.3

У цьому проєкті напис змінюється, коли на нього навести курсор миші.

from tkinter import *

def change_on_move(event):
    """Змінює текст, шрифт та колір напису"""
    label['text'] = 'Курсор тут!'
    label['font'] = ('Verdana', 14, 'italic')
    label['fg'] = 'green'

# Створення головного вікна
root = Tk()
root.title("Завдання 3")

# Створення напису з початковими властивостями
label = Label(root, text="Наведи сюди курсор", font=('Arial', 12), fg='blue')
label.pack(pady=30, padx=30)

# Прив'язка події наведення курсора
label.bind('<Enter>', change_on_move)

# Запуск головного циклу
root.mainloop()

4. Завдання 4.3.4

Тут напис змінюється після кліку будь-де у вікні програми.

from tkinter import *

def change_on_window_click(event):
    """Збільшує ширину напису та змінює його вигляд"""
    current_width = label.cget('width')
    label['width'] = current_width + 5
    label['text'] = 'Назва мого закладу освіти' # Впишіть назву
    label['bg'] = 'red'
    label['fg'] = 'yellow'

# Створення головного вікна
root = Tk()
root.title("Завдання 4")

# Створення напису з початковими властивостями
label = Label(root, text="Клацни у вікні", width=20, font=('Times New Roman', 12))
label.pack(pady=40, padx=40)

# Прив'язка події кліку до вікна
root.bind('<Button-1>', change_on_window_click)

# Запуск головного циклу*
root.mainloop()

5. Завдання 4.3.5

У цьому проєкті вікно та напис змінюються після натискання на кнопку.

from tkinter import *

def change_on_button_click():
    """Змінює розмір вікна та вигляд напису"""
    root.geometry("500x400")
    label['text'] = 'Назва мого закладу освіти' # Впишіть назву
    label['bg'] = 'yellow'
    label['fg'] = 'blue'

# Створення головного вікна
root = Tk()
root.title("Завдання 5")
root.geometry("300x200") # Початковий розмір вікна# Створення напису
label = Label(root, text="Чекаю на натискання кнопки", font=('Calibri', 14))
label.pack(pady=20)

# Створення кнопки
button = Button(root, text="Натисни мене!", command=change_on_button_click)
button.pack(pady=10)

# Запуск головного циклу
root.mainloop()

6. Завдання 4.3.6

Ось код для проєкту, який змінює вигляд написів відповідно до натискань, як показано на малюнку.

from tkinter import *

def click_on_first(event):
    """Змінює фон написів при натисканні на перший."""
    label1.config(bg='blue')
    label2.config(bg='yellow')

def click_on_second(event):
    """Змінює колір та шрифт тексту при натисканні на другий напис."""
    new_font = ('Arial', 14, 'bold')
    label1.config(fg='yellow', font=new_font)
    label2.config(fg='blue', font=new_font)

# Створення головного вікна
root = Tk()
root.title("Україна")

# Створення першого напису
label1 = Label(root, text="Моя країна", width=20)
label1.pack(pady=5)

# Створення другого напису
label2 = Label(root, text="Україна", width=20)
label2.pack(pady=5)

# Прив'язка подій до написів
label1.bind("<Button-1>", click_on_first)
label2.bind("<Button-1>", click_on_second)

# Запуск головного циклу
root.mainloop()

7. Завдання 4.3.7

Ось код для проєкту, який змінює вигляд вікна та написів при натисканні, створюючи ефект зміни дня і ночі.

from tkinter import *

def switch_to_day(event):
    """Перемикає вигляд на 'День'."""
    root.config(bg='white')
    label_night.pack_forget() # Ховаємо напис 'Ніч'
    label_day.pack(pady=20, padx=20) # Показуємо напис 'День'

def switch_to_night(event):
    """Перемикає вигляд на 'Ніч'."""
    root.config(bg='black')
    label_day.pack_forget() # Ховаємо напис 'День'
    label_night.pack(pady=20, padx=20) # Показуємо напис 'Ніч'# Створення головного вікна
root = Tk()
root.title("Світло")
root.config(bg='black') # Початковий чорний фон вікна # Створення напису 'Ніч'
label_night = Label(root, text="Ніч", bg="gray", width=10)
label_night.pack(pady=20, padx=20)

# Створення напису 'День', який спочатку буде прихований
label_day = Label(root, text="День", bg="gray", width=10)

# Прив'язка подій до написів
label_night.bind("<Button-1>", switch_to_day)
label_day.bind("<Button-1>", switch_to_night)

# Запуск головного циклу
root.mainloop()

Готуємось до вивчення нового матеріалу

1. Для чого використовують поля в текстовому процесорі Word?

Поля в Word використовують для автоматичної вставки та оновлення інформації в документі. Це можуть бути, наприклад, номери сторінок, поточна дата, час, назва документа, відомості про автора або автоматично створений зміст. Це допомагає не виправляти таку інформацію вручну.

2. Чим відрізняються об’єкти поле та напис?

Поле та напис (текстове поле) відрізняються своїм призначенням та вмістом. Поле — це спеціальний код для відображення даних, які можуть змінюватися, наприклад, {DATE} для поточної дати. Його вміст оновлюється автоматично. А напис — це графічний об’єкт у вигляді рамки, в яку можна власноруч ввести будь-який статичний текст і розмістити його в довільному місці на сторінці для кращого оформлення.

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Прокрутка до верху