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
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
Plik z chomika:
jacek_040
Inne pliki z tego folderu:
PLP_Spis treści-1.pdf
(189 KB)
R-00-07.pdf
(210 KB)
R-01-07.pdf
(498 KB)
R-02-07.pdf
(628 KB)
R-03-07.pdf
(694 KB)
Inne foldery tego chomika:
Android
C#
C++
Cisco
cisko
Zgłoś jeśli
naruszono regulamin