1. Tworzymy przyciski w Tkinter
Po co nam to?
Wyobraź sobie, że tworzysz kalkulator. No kto by go używał, jeśli nie dałoby się wprowadzić danych i nacisnąć przycisku równa się? Albo może projektujesz formularz do wprowadzania danych. No cóż, tutaj pola tekstowe i przyciski też idealnie pasują.
Przyciski i pola tekstowe pozwalają użytkownikowi bezpośrednio wpływać na program i jego zachowanie. To jak magiczna różdżka, która zamienia pasywne okno w aktywne narzędzie.
Jak wygląda przycisk w Tkinter?
Biblioteka Tkinter oferuje widget Button
do tworzenia przycisków. Ten widget jest dość elastyczny i pozwala dostosować tekst przycisku, kolor, a także przypisać działanie, które zostanie wykonane po kliknięciu.
Oto jak to wygląda w praktyce:
import tkinter as tk
# Tworzymy główne okno
root = tk.Tk()
root.title("Moja aplikacja")
# Tworzymy przycisk i dodajemy go do okna
button = tk.Button(root, text="Kliknij mnie!", command=lambda: print("Przycisk został kliknięty!"))
button.pack()
# Uruchomienie głównej pętli
root.mainloop()
Zwróć uwagę na parametr command
: pozwala on przypisać do przycisku określone działanie. W tym przykładzie, po kliknięciu przycisku w konsoli pojawi się wiadomość "Przycisk został kliknięty!".
Stylizujemy przycisk
Oczywiście chcesz, żeby twoje przyciski nie tylko działały, ale i wyglądały atrakcyjnie. Dodajmy trochę kreatywności:
button = tk.Button(root, text="Kliknij mnie!", command=lambda: print("Przycisk został kliknięty!"), bg="blue", fg="white", font=("Helvetica", 16))
button.pack(pady=10)
bg
ifg
— odpowiadają za kolor tła i tekstu, odpowiednio.font
— pozwala wybrać czcionkę i jej rozmiar.pady
— odstępy w pionie, żeby przycisk "oddychał".
2. Pola tekstowe w Tkinter
Przechodzimy do pól tekstowych. To takie małe okienka, w które twój użytkownik może wpisać swoje życzenia (i nie tylko).
Proste pole tekstowe
Stworzenie pola tekstowego jest super proste z pomocą widgetu Entry
:
entry = tk.Entry(root)
entry.pack()
Ale co z tego, że stworzymy pole tekstowe, jeśli nie możemy uzyskać wprowadzonych danych? Nauczmy się, jak to zrobić!
def get_input():
user_input = entry.get()
print(f"Użytkownik wpisał: {user_input}")
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Pobierz dane", command=get_input)
button.pack()
Super, teraz mamy przycisk, który wyświetla to, co zostało wpisane w polu tekstowym.
Stylizujemy pole tekstowe
Podobnie jak w przypadku przycisków, pola tekstowe również można stylizować:
entry = tk.Entry(root, font=("Arial", 14), fg="black", bg="lightyellow")
entry.pack(padx=5, pady=5)
Tutaj ustawiliśmy czcionkę, kolor tekstu i tła. Parametry padx
i pady
dodają odstępy w poziomie i pionie odpowiednio.
3. Zastosowanie praktyczne
Połączmy wszystko w całość i stwórzmy aplikację, w której użytkownik może wprowadzić dane i nacisnąć przycisk, aby przetworzyć wprowadzone informacje. Stworzymy mały kalkulator, który dodaje wprowadzone liczby.
import tkinter as tk
def calculate():
try:
# Pobieranie wartości z pól tekstowych
number1 = float(entry1.get())
number2 = float(entry2.get())
# Obliczanie sumy
result = number1 + number2
# Aktualizacja tekstu wyniku
result_label.config(text=f"Wynik: {result}")
except ValueError:
result_label.config(text="Wprowadź poprawne liczby!")
# Tworzenie głównego okna
root = tk.Tk()
root.title("Prosty Kalkulator")
# Pola tekstowe na liczby
entry1 = tk.Entry(root, width=10)
entry1.pack(pady=5)
entry2 = tk.Entry(root, width=10)
entry2.pack(pady=5)
# Przycisk do obliczeń
calculate_button = tk.Button(root, text="Dodaj", command=calculate)
calculate_button.pack(pady=10)
# Etykieta do wyświetlania wyniku
result_label = tk.Label(root, text="Wynik: ")
result_label.pack()
# Uruchomienie głównej pętli
root.mainloop()
Tak oto stworzyliśmy małą, ale dumną aplikację-kalkulator, która daje użytkownikowi możliwość wprowadzania danych i widzenia wyniku.
Debugowanie podczas pracy z widgetami
Pracując z przyciskami i polami tekstowymi, możesz napotkać kilka typowych błędów. Na przykład często zdarza się, że handler przycisku nie działa. Najczęstsza przyczyna — brak parametru command
albo błąd w składni funkcji lambda.
Równie często pojawiają się błędy związane z niepoprawnym wprowadzaniem danych. Dlatego nie zapominaj o sprawdzaniu i obsłudze danych wejściowych, tak jak zrobiliśmy to w naszym kalkulatorze, aby wykluczyć problemy.
To wszystko na dzisiaj! Teraz wiesz, jak dodać przyciski i pola tekstowe do swojej aplikacji, aby interakcja z użytkownikiem była interaktywna i ciekawa. Kolejnym krokiem będzie obsługa zdarzeń po kliknięciu przycisków, ale o tym już w następnym wykładzie!
GO TO FULL VERSION