R-09-07.pdf

(1106 KB) Pobierz
PLP_Rozdzia³_9
Rozdział 9. Budowanie GUI
za pomocą Glade i
GTK+/GNOME
Omówimy teraz Glade , czyli wydajne narzędzie przeznaczone do szybkiego projektowania
graficznych interfejsów użytkownika w środowisku GNOME/GTK . W tym rozdziale dokonamy
przeglądu różnych właściwości Glade i różnych sposobów jego wykorzystania, a także pokażemy
krok po kroku sposób tworzenia GUI dla naszej aplikacji obsługującej wypożyczalnię płyt DVD.
Przy okazji zobaczymy także wszystkie właściwości GNOME , GTK+ i glib , o których
wspominaliśmy w poprzednim rozdziale i które teraz będą użyte w konkretnym programie.
Przed rozpoczęciem pracy na dobre chcemy zwrócić uwagę, że borykanie się ze złożonością
problemów spotykanych przy tworzeniu rzeczywistego GUI jest wielkim wyzwaniem dla
niedoświadczonego programisty. Będziemy tworzyć stosunkowo złożony interfejs o nie
okrojonych możliwościach — a więc jego kod jest skomplikowany i całe zadanie realizowane w
celach pokazowych jest dość ambitne.
Mamy zamiar doprowadzić do tego, aby Czytelnik sam się przekonał, jak ważne jest pamiętanie o
elemencie najmniej przewidywalnym, czyli o przyszłym użytkowniku. Oczekuje on, że interfejs
graficzny będzie wykonywał wszystko w wymagany sposób, spójnie i bezpiecznie. Tworząc
poważny program, pokażemy najpierw niektóre drobniejsze problemy, na które natknie się
niedoświadczony programista GUI .
Ten rozdział ma następującą strukturę:
Ogólne omówienie Glade .
Samouczek Glade .
libglade .
Tworzenie interfejsu naszej przykładowej aplikacji w środowisku GNOME .
R-09-07.doc
Strona 1z 67
Ogólne omówienie Glade
Glade służy do tworzenia interfejsów użytkownika w systemie Linux. Narzędzie to pozwala
programiście zaprojektować układ okien, okienek dialogowych, menu i pasków narzędzi. Podczas
pracy szeroko wykorzystuje się myszkę, podobnie jak w programie malarskim. Analogia do
takiego programu jest całkowicie uzasadniona, ponieważ znaczenie ikon i innych elementów jest
dobrze znane doświadczonym projektantom grafiki korzystającym z takich narzędzi jak Gimp .
Programy takie jak Glade pozwalają na tworzenie interfejsu użytkownika przez projektantów bez
zwracania większej uwagi na podstawy działania programu, który ma być obsługiwany przez ten
interfejs — bowiem projekt interfejsu jest oddzielony od kodu właściwego programu.
Program Glade jest najbardziej zaawansowanym narzędziem z grupy programów do szybkiego
tworzenia aplikacji ( RAD ) w środowisku GNOME/GTK+ i jest podobny do narzędzi spotykanych
w Windows, takich jak Power Builder i Visual C++ Resource Editor . Po rozpoczęciu
projektowania Glade może utworzyć szkielet kodu źródłowego, łącznie z funkcjami tworzącymi
okna i okienka dialogowe.
Jako alternatywę tego narzędzia możemy w graficznym interfejsie naszej aplikacji użyć biblioteki
libglade , która służy do załadowania GUI w formacie XML podczas pracy programu. Takie
dynamiczne ładowanie interfejsu jest bardzo zaawansowaną właściwością, dzięki której można
korzystać z różnych interfejsów zależnie od okoliczności, lecz tym zajmiemy się nieco później.
Taka koncepcja jest faktycznie znacznie szersza niż zmiana „skór” znana z programu Winamp.
Użycie „skór” pozwala na modyfikację wyglądu interfejsu i podobnie jak zmiana motywu w
menedżerze okien X Window, służy tylko zmianom estetycznym. Biblioteka libglade umożliwia
także modyfikację funkcjonalną interfejsu, dzięki czemu można uzyskać o wiele większą
elastyczność.
Glade można używać do projektowania GUI , a także jako doskonałego narzędzia dydaktycznego
dla GNOME/GTK+ . Dzięki Glade mamy natychmiastowy dostęp do wszystkich popularnych
widżetów GNOME/GTK+ , łącznie z ich właściwościami, które można dowolnie kształtować,
widząc natychmiast wyniki swojej pracy.
Uwagi na temat projektowania GUI
Powodzenie aplikacji zależy w znacznej mierze od jakości użytego interfejsu użytkownika i nie
jest to rewolucyjne spostrzeżenie. Jeżeli interfejs wydaje się skomplikowany, mylący lub zgoła
dziwny dla nowego użytkownika, wówczas cały produkt nie robi żadnego wrażenia, niezależnie
od jakości swoich pozostałych elementów. Dobry interfejs użytkownika nie może więc być
utworzony za pomocą prostych metod.
Na ten temat napisano wiele książek zawierających recepty dotyczące projektowania GUI , ale
nietrudno wskazać popularne aplikacje, które nie są zgodne z wieloma tzw. „zasadami”.
Rozważmy np. przyciski na pasku narzędziowym, których pierwotnym zadaniem było dublowanie
często używanych pozycji menu w celu uzyskania do nich szybszego dostępu. Teraz spójrzmy, co
występuje w programie Internet Explorer 5 : po naciśnięciu przycisku Mail na pasku
narzędziowym rozwija się menu podrzędne! Można to traktować jako niewygodę lub ulepszenie,
ale niezależny od odczuć pozostaje oczywisty fakt: niespójny interfejs może wprowadzać
R-09-07.doc
Strona 2z 67
użytkownika w błąd. Jeśli użytkownik oczekuje, że pewne funkcje będą działać w określony
sposób, to przed próbą zmiany tego działania należy dobrze się zastanowić!
[[[ramka]]]
W akceptowalnych przez użytkowników projektach GUI zachodzą zmiany podobne do zmian w
użyciu słów, w gramatyce i pisowni. Jeżeli byłoby trzeba podać tu podstawową zasadę, to będzie
nią utrzymanie podobieństwa do interfejsu innych programów i pamiętanie o kluczowych modnych
określeniach: intuicyjny, przyjazny dla użytkownika i prosty w użyciu.
[koniec ramki]]]
Samouczek Glade
W tym podrozdziale zapoznamy się z właściwościami Glade , tworząc przykładową aplikację o
nazwie Example . Aplikacja ta umożliwi wprowadzenie tekstu do widżetu GtkEntry i
wyświetlenie go w postaci komunikatu w okienku dialogowym. Podany tu materiał zawiera:
omówienie edycyjnych funkcji Glade ,
opis tworzenia przez Glade prototypowego kodu źródłowego,
opis połączenia projektu utworzonego za pomocą Glade z kodem odczytującym tekst i
tworzącym okienko dialogowe.
Glade wchodzi w skład pakietów tworzących GNOME , a więc zapewne każdy ma ten program w
swojej dystrybucji Linuksa. Podobnie jak większość oprogramowania GNOME/GTK+ , status
Glade w momencie pisania tej książki był określany jako „stabilny, lecz nie ukończony” (była to
wersja 0.5.7). Dlatego właśnie warto sprawdzić najnowszą wersję (jest ona dostępna pod adresem
glade.pn.org ), zawierającą więcej właściwości i z poprawionymi błędami. Na stronie WWW
projektu Glade można także zapisać się na pocztową listę dyskusyjną oraz pobrać stamąd
najnowsze wersje dokumentacji i zapoznać się z istniejącymi programami utworzonymi za
pomocą tego narzędzia.
Zakładając, że mamy poprawnie zainstalowany program Glade , możemy wywołać go z menu
panela GNOME , ponieważ podczas instalacji tworzony jest wpis w sekcji Development .
Alternatywny sposób uruchomienia polega na użyciu polecenia glade w oknie terminala.
R-09-07.doc
Strona 3z 67
Glade po uruchomieniu wyświetla trzy okna : okno główne projektu (ang. main project window ) ,
paletę z widżetami ( ang. widget palette ) i edytor właściwości (ang. properties editor ).
Okno główne
Okno główne (początkowo puste) zawiera listę okien, okienek dialogowych i menu związanych z
bieżącym projektem. Nowy projekt tworzymy, korzystając z menu File | New Project , a następnie
otwierając okno dialogowe Project Options za pomocą kliknięcia na odpowiedni przycisk paska
narzędziowego lub z menu File | Project Options .
Na zakładce General można wpisać nazwę projektu i katalogu oraz nazwę pliku, który będzie
używany przez Glade do przechowywania reprezentacji XML naszego projektu. Grupa przycisków
opcji (ang. radio buttons ) pozwala na wybór języka programowania używanego przez Glade do
zapisu kodu źródłowego. Mamy także do dyspozycji przycisk opcji (ang. toggle button )
włączający wspomaganie GNOME . Jeśli jest on wyłączony, to do dyspozycji jest tylko GTK+ .
R-09-07.doc
Strona 4z 67
209514885.004.png 209514885.005.png 209514885.006.png 209514885.007.png
Na zakładkach C Options i libglade umieszczono opcje szczegółowe opisujące zachowywanie
kodu źródłowego w języku C tworzonego przez Glade oraz opcje biblioteki libglade .
Paleta
Okno Palette zawiera widżety, które mogą być użyte w budowanym interfejsie. Jest ono
podzielone na trzy zakładki o nazwach GTK+ Basic , GTK+ Additional i Gnome .
Zakładka GTK+ Basic zawiera najczęściej stosowane widżety GTK+ , takie jak etykiety
(ang. labels ), okna edycyjne (ang. entry boxes ), ramki (ang. frames ) i elementy zbiorcze
(ang. packing widgets ).
R-09-07.doc
Strona 5z 67
209514885.001.png 209514885.002.png 209514885.003.png
Zgłoś jeśli naruszono regulamin