1. Widget "Etykieta" (Label
)
Dzisiaj kontynuujemy naszą przygodę z tym wspaniałym narzędziem, a konkretnie porozmawiamy o etykietach (Label
)
i polach tekstowych (Text
). Tak, to właśnie to, czego potrzebujesz, by twoja aplikacja mogła nie tylko wykonywać trudne zadania,
ale także dzielić się tymi niesamowitymi osiągnięciami z użytkownikiem, czy to przez krótkie wiadomości, czy przez duże ilości tekstu.
Zanim zanurzymy się w nasze przygody z polami tekstowymi, zacznijmy od czegoś prostszego — od etykiet. Etykieta w Tkinter to taki mały i przytulny widget, który pozwala nam wyświetlać statyczne informacje. Praktycznie jak naklejka na lodówce, tylko w twojej aplikacji. Może być używana do nagłówków, opisów, a nawet całych aforyzmów.
Tworzenie i stylizowanie etykiet
Utworzenie etykiety w Tkinter jest łatwiejsze niż nauczenie się nowej składni języków programowania (pamiętasz, jak to bolało za pierwszym razem?). Oto przykład kodu z użyciem etykiety:
import tkinter as tk
# Tworzymy główne okno
root = tk.Tk()
root.title("Moja pierwsza etykieta")
# Tworzymy etykietę
label = tk.Label(root, text="Cześć, świecie!", font=("Arial", 14))
label.pack()
# Uruchamiamy główną pętlę zdarzeń
root.mainloop()
Tutaj stworzyliśmy etykietę, która mówi "Cześć, świecie!". Jak widzisz, można w niej dostosować font i rozmiar tekstu, co czyni ją bardzo elastyczną. Możesz samodzielnie wybrać styl, rozmiar, a nawet kolor tekstu, aby odpowiadał twoim designerskim zamiarom.
2. Widget "Pole tekstowe" (Text)
Teraz, gdy poznaliśmy etykiety, przejdźmy poziom wyżej i porozmawiajmy o polach tekstowych.
Pola tekstowe (Text
) — to jak notatnik, wbudowany w twoją aplikację.
Pozwalają wyświetlać i edytować duże ilości tekstu. To przydatne, jeśli chcesz dodać użytkownikowi możliwość pracy z większą ilością tekstu
lub po prostu pokazać mu, ile kodu napisałeś w weekend.
Użycie pól tekstowych
Oto przykład, jak stworzyć pole tekstowe i wypełnić je jakimś tekstem:
import tkinter as tk
# Tworzymy główne okno
root = tk.Tk()
root.title("Pole tekstowe")
# Tworzymy pole tekstowe
text = tk.Text(root, height=10, width=40)
text.pack()
# Wypełniamy je jakimś tekstem
text.insert(tk.END, "Dawno, dawno temu w odległej galaktyce...\n")
text.insert(tk.END, "Twój tekst tutaj...")
# Uruchamiamy główną pętlę zdarzeń
root.mainloop()
Jak widać z przykładu, możemy dodawać tekst do pola tekstowego za pomocą metody insert
.
Parametr tk.END
wskazuje, że tekst powinien zostać dodany na końcu aktualnego tekstu.
Konfigurowanie fontów i stylów tekstu
Dla obu rodzajów widgetów możemy konfigurować style tekstu. Obejmuje to fonty, rozmiary, kolory i wiele więcej. Oto przykład, jak to zrobić dla etykiety i pola tekstowego:
label = tk.Label(root, text="Cześć, świecie!", font=("Courier", 16, "bold"), fg="blue")
label.pack()
text.tag_configure("highlight", font=("Verdana", 12), foreground="red")
text.insert(tk.END, "Ten tekst będzie wyróżniony", "highlight")
Tutaj zmieniliśmy font i kolor tekstu w etykiecie oraz użyliśmy tagów do wyróżnienia tekstu w polu tekstowym.
Zwróć uwagę na użycie tag_configure
dla pola tekstowego: pozwala nam stworzyć "tag",
który możemy zastosować do dowolnej części tekstu. To potężne narzędzie, które pozwala zarządzać wyglądem poszczególnych części tekstu w polu.
3. Integracja w aplikacji
Teraz, gdy wiemy, jak tworzyć i stylizować etykiety oraz pola tekstowe, spójrzmy na przykład ich użycia w aplikacji. Wyobraźmy sobie, że tworzymy prosty edytor tekstowy. Ten edytor może wyświetlać i edytować pliki tekstowe.
import tkinter as tk
from tkinter import filedialog
# Funkcja do otwierania pliku
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)
# Tworzymy główne okno
root = tk.Tk()
root.title("Edytor tekstowy")
# Tworzymy widgety
label = tk.Label(root, text="Edytor tekstowy", 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="Otwórz plik", command=open_file)
open_button.pack()
# Uruchamiamy główną pętlę zdarzeń
root.mainloop()
W tym przykładzie stworzyliśmy prostą aplikację, która pozwala użytkownikowi otwierać pliki tekstowe i przeglądać ich zawartość w polu tekstowym.
Używając widgetu Button
, przypisaliśmy polecenie otwierania pliku do funkcji open_file
,
która wykorzystuje okno dialogowe filedialog
do wyboru pliku. To znacznie ciekawsze,
niż patrzenie jedynie na tekst "Hello World", prawda?
4. Obsługa zmian tekstu
Gdy pracujesz z tekstem, możesz potrzebować odpowiedzieć na zmiany: czy to wypisując tekst z powrotem do konsoli (lub pliku), czy aktualizując inne części interfejsu. Tkinter oferuje różne sposoby śledzenia zmian tekstu.
Jednakże, jeśli chcesz zrobić coś bardziej specjalistycznego, na przykład wyszukać tekst lub zamienić go na jakieś warunki,
będziesz musiał napisać odpowiednie funkcje samodzielnie. Na początek możesz użyć metod
get()
i delete()
, aby pobrać i zmienić tekst w widget.
W ten sposób masz teraz wszystkie narzędzia do stworzenia mini-aplikacji, która nie tylko wyświetla informacje, ale również umożliwia użytkownikowi interakcję z nimi. Mam nadzieję, że lekcja o etykietach i polach tekstowych była nie tylko przydatna, ale także interesująca. Następnym razem, gdy zobaczysz pole tekstowe w aplikacji, będziesz wiedział, że prawdopodobnie jest zrobione w Tkinter, a etykieta to nie tylko napis, ale cała filozofia interakcji z użytkownikiem.
GO TO FULL VERSION