1. Віджет "Мітка" (Label)
Сьогодні ми з вами продовжимо наше знайомство з цим чудовим інструментом, а саме поговоримо про мітки (Label) та текстові поля (Text). Так, це саме те, що вам потрібно, щоб ваше застосунок міг не лише виконувати складні завдання, але й ділитися цими дивовижними досягненнями з користувачем, будь то через короткі повідомлення або великі обсяги тексту.
Перш ніж зануритись у наші пригоди з текстовими полями, почнемо з чогось простішого — з міток. Мітка в Tkinter — це такий маленький і затишний віджет, який дозволяє нам відображати статичну інформацію. Практично як стікер на холодильнику, тільки у вашому застосунку. Може бути використана для заголовків, описів і навіть цілих афоризмів.
Створення та оформлення міток
Створити мітку в Tkinter простіше, ніж вивчити новий синтаксис мов програмування (пам'ятаєте, як це було боляче вперше?). Ось приклад коду з використанням мітки:
import tkinter as tk
# Створюємо основне вікно
root = tk.Tk()
root.title("Моя перша мітка")
# Створюємо мітку
label = tk.Label(root, text="Привіт, світ!", font=("Arial", 14))
label.pack()
# Запускаємо основний цикл обробки подій
root.mainloop()
Тут ми створили мітку, яка каже "Привіт, світ!". Як бачите, у ній можна налаштовувати шрифт і розмір тексту, що робить її дуже гнучкою. Ви самостійно можете обрати стиль, розмір і навіть колір тексту, щоб він відповідав вашим дизайнерським задумам.
2. Віджет "Текстове поле" (Text)
Тепер, коли ми познайомилися з мітками, давайте перейдемо на рівень вище й поговоримо про текстові поля. Текстові поля (Text) — це як блокнот, вбудований у ваше застосунок. Вони дозволяють відображати і редагувати великі обсяги тексту. Це корисно, якщо вам потрібно додати можливість користувачу взаємодіяти з великим обсягом тексту або ви просто хочете показати йому, як багато коду ви написали за вихідні.
Використання текстових полів
Ось приклад, як створити текстове поле і заповнити його якимось текстом:
import tkinter as tk
# Створюємо основне вікно
root = tk.Tk()
root.title("Текстове поле")
# Створюємо текстове поле
text = tk.Text(root, height=10, width=40)
text.pack()
# Заповнюємо його якимось текстом
text.insert(tk.END, "Давно-давним, у далекій галактиці...\n")
text.insert(tk.END, "Ваш текст тут...")
# Запускаємо основний цикл обробки подій
root.mainloop()
Як видно з прикладу, ми можемо вставляти текст у текстове поле за допомогою методу insert. Параметр tk.END вказує на те, що текст має бути доданий у кінець поточного тексту.
Налаштування шрифтів і стилів тексту
Для обох видів віджетів ми можемо налаштувати стилі тексту. Це включає шрифти, розміри, кольори тощо. Ось приклад, як це зробити для мітки та текстового поля:
label = tk.Label(root, text="Привіт, світ!", font=("Courier", 16, "bold"), fg="blue")
label.pack()
text.tag_configure("highlight", font=("Verdana", 12), foreground="red")
text.insert(tk.END, "Цей текст буде виділено", "highlight")
Тут ми змінили шрифт і колір тексту в мітці й використали теги для виділення тексту у текстовому полі. Зверніть увагу на використання tag_configure для текстового поля: він дозволяє нам створити "тег", який ми можемо застосувати до будь-якої частини тексту. Це потужний інструмент, який дозволяє вам керувати оформленням окремих частин тексту в полі.
3. Інтеграція у застосунок
Тепер, коли ми знаємо, як створювати і стилізувати мітки та текстові поля, давайте поглянемо на реальний приклад їх використання у застосунку. Уявіть, що ми створюємо простий текстовий редактор. Цей редактор може відображати і редагувати текстові файли.
import tkinter as tk
from tkinter import filedialog
# Функція для відкриття файлу
def open_file():
file_path = filedialog.askopenfilename()
if file_path:
with open(file_path, 'r') as file:
content = file.read()
text.delete(1.0, tk.END)
text.insert(tk.END, content)
# Створюємо основне вікно
root = tk.Tk()
root.title("Текстовий редактор")
# Створюємо віджети
label = tk.Label(root, text="Текстовий редактор", font=("Arial", 16))
label.pack()
text = tk.Text(root, wrap='word', font=("Arial", 12))
text.pack(expand=1, fill='both')
open_button = tk.Button(root, text="Відкрити файл", command=open_file)
open_button.pack()
# Запускаємо основний цикл обробки подій
root.mainloop()
У цьому прикладі ми створили простий застосунок, який дозволяє користувачу відкривати текстові файли й переглядати їхній вміст у текстовому полі. Використовуючи віджет Button, ми прив'язали команду відкриття файлу до функції open_file, яка використовує діалогове вікно filedialog для вибору файлу. Це набагато цікавіше, ніж просто дивитися на текст "Hello World", правда ж?
4. Обробка змін тексту
Коли ви працюєте з текстом, вам може знадобитися реагувати на зміни: будь то вивід тексту назад у консоль (або файл) чи оновлення інших частин інтерфейсу. Tkinter надає різні способи відстеження змін тексту.
Однак, якщо ви захочете зробити щось більш спеціалізоване, наприклад, шукати текст або замінювати його за якоюсь умовою, вам доведеться написати відповідні функції самостійно. Для початку ви можете використовувати методи get() і delete() для вилучення й зміни тексту у віджеті.
Таким чином, тепер у вас є всі інструменти для створення міні-застосунку, який не лише відображає інформацію, але й дозволяє користувачу взаємодіяти з нею. Сподіваюся, що урок про мітки та текстові поля був не лише корисним, але й цікавим. Наступного разу, коли ви побачите текстове поле у застосунку, ви будете знати, що воно, ймовірно, зроблено на Tkinter, а мітка — це не просто надпис, а ціла філософія взаємодії з користувачем.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ