Pierwsze kroki z GUI: Jak "myśli" program w Tkinterze

Większość skryptów pomocniczych działa liniowo: start, wykonanie instrukcji i koniec. W świecie aplikacji z okienkami (GUI) zasady gry się zmieniają. Program wchodzi w stan „oczekiwania” na ruch użytkownika.

Poznajmy Tkinter – wbudowaną bibliotekę Pythona, która pozwoli Ci zamienić kod w interaktywne narzędzie bez instalowania dodatkowych pakietów.


Pętla, która nigdy nie śpi

Kluczem do zrozumienia GUI jest tzw. Main Loop. Program nie kończy się po wyświetleniu okna – on nieustannie „nasłuchuje” kliknięć, naciśnięć klawiszy lub wprowadzania tekstu.


Praktyczny przykład: Kalkulator proporcji 16:9

Zbudujemy narzędzie przydatne w pracy z wideo. Wprowadzasz szerokość w pikselach, a program oblicza wysokość dla standardu HD.

Dostępność:

Źródło: Nazwa:
Centrum Pobierania post_40pl

Kod źródłowy dostępny w Centrum Pobierania na licencji MIT.
Dokumentacja: kajotte-studio.com/docs-pl


Wytłumaczenie działania programu:

Import messagebox Pozwala na wyświetlenie systemowego okna z błędem. Jest to kluczowe dla UX (User Experience) – zamiast błędu widocznego tylko w konsoli programisty, użytkownik otrzymuje jasny komunikat graficzny.
Mechanizm get() i rzutowanie danych Pola typu Entry domyślnie przechowują dane jako tekst (typ string). Aby móc wykonać operacje matematyczne (dzielenie, mnożenie), musimy przekonwertować ten tekst na liczbę za pomocą funkcji float(). Zastosowanie bloku try...except gwarantuje, że program nie zamknie się gwałtownie, gdy użytkownik popełni błąd wpisując tekst.
Funkcja jako referencja (Callback) W linii definiującej przycisk używamy command=oblicz_wysokosc. Kluczowe jest pominięcie nawiasów (). Dzięki temu nie wywołujemy funkcji w momencie startu programu, lecz przekazujemy ją do przycisku, który uruchomi ją dopiero po kliknięciu.
Zarządca układu pack() Jest to jeden z trzech systemów rozmieszczania elementów w Tkinter. Układa on widgety jeden pod drugim w pionowej kolumnie. Parametr pady dodaje wolną przestrzeń powyżej i poniżej elementu, co poprawia czytelność interfejsu.
Dynamiczna zmiana przez config() Metoda ta pozwala modyfikować właściwości obiektów, które już zostały wyświetlone. Dzięki temu możemy podmienić tekst w label_wynik natychmiast po wykonaniu obliczeń, bez konieczności przeładowywania okna.

👇

▒ Przewodnik po blogu: wszystkie posty o programowaniu w jednym miejscu. ▹ Zobacz