Spis treści:

Kurs z zatrudnieniem: „Profesjonalny programista Pythona”
Dowiedz się więcejKrok 0: Zbierz niezbędne narzędzia
Zalecamy rozpoczęcie od nauki podstaw systemu operacyjnego Linux. Wybierz odpowiednią dystrybucję, zainstaluj ją i skonfiguruj Pythona. Nasze artykuły dostarczą Ci informacji potrzebnych do szybkiego opanowania wszystkich kroków.
- Czym jest Linux: Przewodnik po najswobodniejszym systemie operacyjnym
- Najlepsze dystrybucje Linuksa: Którą wersję systemu operacyjnego wybrać
- Jak uruchamiać Pythona offline i online: Przewodnik dla początkujących
Do tworzenia aplikacji w Pythonie używamy dwóch kluczowych narzędzi z ekosystemu GNOME: Builder i Cambalache. Builder to nowoczesne zintegrowane środowisko programistyczne (IDE), które zapewnia wygodny i wydajny proces kodowania. Cambalache to z kolei edytor wizualny, który upraszcza tworzenie graficznego interfejsu użytkownika kalkulatora GTK. Narzędzia te umożliwiają programistom łatwe tworzenie aplikacji w Pythonie z wykorzystaniem możliwości środowiska GNOME.
Oba narzędzia są dostępne do pobrania w sklepie z aplikacjami Flathub, co gwarantuje bezpieczną instalację w odizolowanym środowisku. Aby zainstalować, przejdź na strony narzędzi Builder i Cambalache i kliknij przycisk „Instaluj”. System automatycznie rozpocznie pobieranie za pośrednictwem menedżera pakietów, a Ty będziesz musiał jedynie potwierdzić instalację po wyświetleniu monitu. Flathub to zaufane źródło aplikacji, zapewniające użytkownikom bezpieczną i wygodną instalację.
Jeśli automatyczna instalacja aplikacji nie zadziała, skopiuj polecenie pobierania ze strony internetowej aplikacji i wklej je do terminala. Upewnij się również, że Twoja dystrybucja obsługuje Flatpak. Jeśli wsparcie nie jest dostępne, należy je skonfigurować ręcznie.
Plan pracy obejmuje utworzenie projektu w GNOME Builder, integrację biblioteki Python StringCalculator do obsługi wyrażeń arytmetycznych, opracowanie interfejsu użytkownika za pomocą Cambalache oraz przetestowanie funkcjonalności kalkulatora. Zaczynajmy?
Krok 1: Utwórz projekt w GNOME Builder
Uruchom GNOME Builder z menu aplikacji. Kliknij przycisk „Utwórz nowy projekt”. W oknie, które zostanie otwarte, wypełnij wymagane pola.
- Nazwa projektu: kalkulator.
- Identyfikator aplikacji: można pozostawić puste.
- Język programowania: wybierz Python.
- Szablon: zainstaluj jako aplikację GNOME Desktop.
- Lokalizacja projektu: wybierz folder na komputerze, w którym zostaną zapisane pliki kalkulatora.
Po wypełnieniu wszystkich pól kliknij przycisk „Utwórz projekt”. przycisk.

Po lewej stronie okna Buildera wyświetlana jest struktura plików projektu. Tutaj możesz zobaczyć wszystkie foldery i pliki, które składają się na Twój projekt. To wygodne narzędzie nawigacyjne, pozwalające szybko znaleźć i edytować potrzebne elementy. Struktura plików pomaga zorganizować pracę, zapewniając łatwy dostęp do każdego komponentu projektu. Upewnij się, że pliki są odpowiednio ustrukturyzowane, aby uprościć proces rozwoju i usprawnić zarządzanie projektem.
- Folder danych zawiera plik opisu naszego kalkulatora, ikonę programu uruchamiającego, ikony i inne zasoby.
- Folder po przechowuje pliki tłumaczeń aplikacji na różne języki.
- Katalog src zawiera cały kod źródłowy programu.
Domyślnie GNOME Builder tworzy odizolowane kompilacje aplikacji w technologii Flatpak. Aplikacje te działają w oddzielnych kontenerach, co zapewnia ich całkowitą niezależność od systemu operacyjnego. Izolacja jest zarządzana za pomocą manifestu Flatpak, pliku konfiguracyjnego .json. Ten plik definiuje wszystkie wymagane komponenty aplikacji, w tym biblioteki systemowe, moduły Pythona i inne zależności. Będziesz musiał wypełnić ten manifest, który zostanie zaprezentowany jako plik org.gnome.Example.json.

Krok 2. Dodawanie biblioteki StringCalculator
Podczas tworzenia kalkulatora łańcuchowego kluczowe jest zapewnienie dokładnej analizy wyrażeń arytmetycznych wprowadzanych przez użytkownika. Program musi poprawnie określać kolejność działań, uwzględniając nawiasy. Osiągnięcie tego celu wymaga algorytmu, który będzie analizował łańcuch znak po znaku i rozpoznawał liczby, operatory i nawiasy. Bez takiego algorytmu niemożliwe jest wykonanie poprawnej sekwencji obliczeń i zagwarantowanie dokładnego wyniku. Skuteczne rozpoznawanie elementów wyrażenia jest kluczem do stworzenia solidnego i funkcjonalnego kalkulatora.
W przypadku wyrażenia 2 + (3 × 4) kalkulator najpierw obliczy iloczyn w nawiasach (3 × 4 = 12), a następnie doda 2 do wyniku, co da 14. Użycie biblioteki Pythona StringCalculator znacznie upraszcza ten proces, ponieważ automatycznie wykonuje wszystkie niezbędne obliczenia, co czyni go idealnym narzędziem do pracy z wyrażeniami matematycznymi.
Aby zintegrować StringCalculator z kalkulatorem, otwórz plik manifestu (org.gnome.Example.json) i dodaj poniższy kod na początku sekcji modułów. Builder automatycznie zainstaluje bibliotekę i skonfiguruje wszystkie niezbędne zależności. Umożliwi to korzystanie z funkcjonalności StringCalculatora w projekcie, zapewniając bardziej elastyczne opcje pracy z danymi tekstowymi.
Manifest musi zawierać opis modułu aplikacji. Po uruchomieniu projektu za pomocą przycisku na górnym pasku, wyświetlane jest standardowe powitanie „Witaj, świecie!”. Na ekranie wyświetla się komunikat „brak błędów podczas uruchamiania”. Brak błędów podczas uruchamiania potwierdza pomyślną instalację modułu StringCalculator.

Krok 3. Budowanie interfejsu użytkownika
W katalogu src znajdź plik window.ui, który zawiera znaczniki XML dla interfejsu kalkulatora. Kliknij ten plik prawym przyciskiem myszy i wybierz „Otwórz za pomocą”, a następnie wskaż „Program zewnętrzny” i wybierz Cambalache.
Po pierwszym uruchomieniu Cambalache interfejs będzie pusty, ponieważ używa plików z rozszerzeniem .cmb. Aby rozwiązać ten problem, musisz wyeksportować plik. Aby to zrobić, kliknij przycisk z trzema kropkami w prawym górnym rogu, wybierz „Eksportuj cały interfejs użytkownika” i zamknij Cambalache. Builder wyświetli komunikat informujący o modyfikacji pliku na dysku. Kliknij „Odrzuć zmiany i załaduj ponownie”, a następnie ponownie załaduj projekt. W folderze src pojawi się nowy plik window.cmb, który należy otworzyć w Cambalache.

Najpierw usuń etykietę z napisem „Witaj, świecie!”. Znajdź element GtkLabel z zawartością etykiety w drzewie projektu i usuń go. Następnie dodaj w jego miejsce kontener GtkBox. Aby to zrobić, otwórz menu „Układ” znajdujące się nad układem, wybierz „GtkBox”, najedź kursorem na żądane miejsce w układzie, kliknij prawym przyciskiem myszy i wybierz „Dodaj obiekt tutaj”.

Aby usunąć trzecią sekcję, naciśnij Ctrl + Del. Następnie zmień orientację kontenera z poziomej na pionową. Aby tego dokonać, znajdź sekcję „orientacja” w prawym panelu i z listy rozwijanej wybierz wartość „pionowa”. Dzięki temu Twoja treść będzie wyglądać na bardziej uporządkowaną i łatwiejszą do odczytania.

Dodaj dodatkowy kontener GtkBox o orientacji poziomej do górnej sekcji. Uprości to proces dodawania komponentów kalkulatora, ponieważ teraz wystarczy kliknąć lewym przyciskiem myszy na żądany obszar układu. Użycie poziomego GtkBox pozwala na efektywniejszą organizację elementów interfejsu i usprawnienie interakcji użytkownika z aplikacją.

Kontynuujmy Dostosowywanie górnej sekcji kalkulatora. Dodaj pole do wprowadzania wyrażeń arytmetycznych po lewej stronie interfejsu. Aby to zrobić, otwórz menu Sterowanie i wybierz GtkEntry. Dodaj przycisk do obliczania wyniku po prawej stronie, ponownie otwierając menu Sterowanie i wybierając GtkButton. Te elementy umożliwią użytkownikom wprowadzanie wyrażeń matematycznych i otrzymywanie wyników obliczeń, co sprawi, że kalkulator będzie bardziej funkcjonalny i łatwiejszy w użyciu.

Na dole Kontener główny, dodaj pole do wyświetlania wyniku, wybierając widżet GtkTextView z menu Wyświetlanie. Pozwoli to na efektywną wizualizację danych i usprawni interakcję z użytkownikiem. GtkTextView umożliwia wyświetlanie tekstu wielowierszowego i zapewnia elastyczność w formatowaniu treści.
Interfejs naszego kalkulatora jest prawie ukończony. Teraz wróć do przycisku i w prawym panelu w sekcji etykiety dodaj tekst „OBLICZ”.

Aby zapewnić efektywną interakcję z elementami interfejsu w programie, ważne jest przypisanie każdemu widżetowi unikalnych identyfikatorów. W tym celu należy wybrać żądany widżet i określić wartość w polu Object Id w prawym panelu. Zalecamy użycie następującej notacji: dla GtkEntry identyfikator należy ustawić na entry, dla GtkButton – na calculator_button, a dla GtkTextView – na text_view. Uprości to dalszą pracę z elementami interfejsu i zapewni ich prawidłowe działanie w aplikacji.
Aby zapisać utworzony interfejs w pliku window.ui, należy kliknąć przycisk z trzema kropkami w prawym górnym rogu. W otwartym menu należy wybrać opcję „Eksportuj cały interfejs użytkownika”. Następnie w Builderze należy kliknąć przycisk „Odrzuć zmiany” i ponownie uruchomić aplikację. Spowoduje to pomyślne zapisanie wszystkich zmian wprowadzonych w interfejsie.
Krok 4. Uruchom Kalkulator
W folderze src w Builderze otwórz plik window.py, w którym opracujemy główny kod kalkulatora. Zaczniemy od dodania klasy SolveMathProblem z biblioteki StringCalculator w Pythonie do sekcji importów. Umożliwi nam to korzystanie z funkcji do rozwiązywania zadań matematycznych, co jest kluczowym elementem funkcjonalności naszego kalkulatora.
Teraz musimy dodać deklaracje widżetów interfejsu kalkulatora. Po wierszu szablonu `label = Gtk.Template.Child()` wstaw następujący kod:
W funkcji __init__ w Pythonie dodaj procedurę obsługi zdarzeń kliknięcia przycisku, która wykona obliczenia. Aby to zrobić, połącz sygnał kliknięcia przycisku z funkcją obsługi on_calculate_clicked za pomocą następującego kodu: self.calculate_button.connect(«clicked», self.on_calculate_clicked). Umożliwi to programowi reagowanie na kliknięcia przycisków i wykonywanie niezbędnych obliczeń.
W metodzie __init__ utwórz zmienną tekstową, która jest pustym ciągiem znaków do przechowywania historii obliczeń. Wszystkie wprowadzone wyrażenia i ich wyniki zostaną dodane do tej zmiennej, która później zostanie wyświetlona w polu text_view. W ten sposób użytkownicy będą mogli zobaczyć pełną historię swoich obliczeń, co poprawi komfort użytkowania.
Funkcja inicjalizacji kalkulatora powinna zostać zaimplementowana w następujący sposób:
Do kalkulatora należy dodać funkcję obsługi, aby rozszerzyć jego funkcjonalność. Funkcja ta będzie odpowiedzialna za przetwarzanie danych wprowadzonych przez użytkownika i wykonywanie obliczeń, dzięki czemu kalkulator będzie wygodniejszy i wydajniejszy w użyciu. Ważne jest, aby rozważyć wszystkie możliwe przypadki użycia i upewnić się, że operacje są wykonywane poprawnie. Dodanie tej funkcji nie tylko poprawi komfort użytkowania, ale także sprawi, że kalkulator stanie się bardziej niezawodnym narzędziem do wykonywania obliczeń matematycznych.
Kalkulator Pythona jest już dostępny do użycia. Uruchom projekt za pomocą przycisku na górnym pasku GNOME Builder i przetestuj jego funkcjonalność. Na przykład, wprowadź wyrażenie 2 + 2 × 2 i upewnij się, że kalkulator poprawnie uwzględnia kolejność działań, zwracając wynik 6. Sprawdź również, jak program reaguje na dzielenie przez zero lub naciśnięcie przycisku z pustym polem wprowadzania. Pozwoli to ocenić niezawodność i stabilność kalkulatora.


Co dalej
Kalkulator działa, ale można go ulepszyć. Rozważmy kilka sugestii dotyczących ulepszeń.
- Dodaj boczne wypełnienie do głównego kontenera GtkBox, aby interfejs był bardziej przejrzysty.
- Dodaj przycisk „Wyczyść” do pola wprowadzania wyrażeń kalkulatora.
- Powiąż funkcję on_calculate_clicked z klawiszem Enter, aby uzyskać szybkie wyniki bez użycia myszy.
- Spróbuj użyć funkcji re.sub() z modułu re, aby usunąć dodatkowe spacje z wyrażenia przed przetworzeniem. Więcej informacji na ten temat znajdziesz w artykule o wyrażeniach regularnych w Pythonie.
Oto kilka zasobów, które pomogą Ci ulepszyć kalkulator. Materiały te zawierają przydatne wskazówki i porady, które pomogą Ci ulepszyć funkcjonalność i interfejs użytkownika. Użyj ich, aby usprawnić proces rozwoju i poprawić jakość produktu końcowego.
- Dokumentacja GTK 4 — przewodnik po tworzeniu interfejsów.
- Samouczek Python GTK — instrukcje krok po kroku z przykładami kodu.
- GNOME Discourse — forum do dyskusji i wymiany doświadczeń.
- Dokumentacja Cambalache i GNOME Builder — przewodniki po naszych narzędziach do projektowania i tworzenia aplikacji GTK.

