Linux.Tworzenie aplikacji - Eric Harlow [Robomatic].pdf

(4883 KB) Pobierz
19662163 UNPDF
19662163.001.png
Rozdział 1
Wprowadzenie do GTK+
GTK+ jest skrótem od GIMP Toolkit, natomiast GIMP jest skrótem nazwy
programu narzędziowego, Graphical Image Manipulation. GIMP Toolkit
to biblioteka, wykorzystywana do pisania aplikacji zgraficznym
interfejsem użytkownika (GUI, Graphical User Interface ). Biblioteka jest
obecnie szeroko stosowana podczas tworzenia aplikacji GUI w Linuksie.
Program GIMP, który stanowi doskonały przykład profesjonalnej
aplikacji GUI, został napisany właśnie w oparciu o bibliotekę GTK+.
GIMP jest darmową aplikacją, oswobodnie dostępnym kodzie
źródłowym, którą można pobrać spod adresu www.gimp.org. GTK+
można używać także do tworzenia aplikacji na innych platformach, na
których jest dostępna. Jest to biblioteka obiektowa, napisana w C, która
może wspierać aplikacje napisane w kilku różnych językach; obecnie na
liście obsługiwanych języków są Ada95, C++, Eiffel, Objective C, Perl,
Python i wiele innych. Aktualna lista powiązań językowych znajduje się
na stronie WWW GTK+, www.gtk.org.
Założenia dotyczące czytelnika tej książki
W książce zakładamy, że Czytelnik zna język programowania C i wie co
nieco oLinuksie. Powinien mieć wprawę wposługiwaniu się
wskaźnikami i zarządzaniu pamięcią. Czytelnik powinien także mieć
doświadczenie w tworzeniu aplikacji GUI i orientować się w systemach
zdarzeniowych. W kilku słowach: książka ta przeznaczona jest dla
programistów Linuksa, którzy chcą tworzyć programy GUI.
Książka przyda się także wszystkim tym, którzy programowali w innych
systemach operacyjnych (na przykład MS Windows), a chcą
programować aplikacje GUI w Linuksie.
Co zawiera ta książka?
Książka opisuje posługiwanie się biblioteką GTK+, łącznie z GLIB i GDK,
przy użyciu C. Nie oznacza to, że opisane zostaną wszystkie aspekty
4
Część I Programowanie w GTK+
GTK+; biblioteka ta jest o wiele za duża, żeby można było omówić ją
w jednej książce. Celem tej książki jest uświadomienie programistom, że
GTK+ jest pakietem narzędziowym GUI, służącym do tworzenia aplikacji
w Linuksie i innych systemach operacyjnych.
Biblioteka GTK+ jest oprogramowaniem darmowym, czy też raczej
o otwartym źródle , co oznacza, że można pobrać z sieci jej pełen kod
źródłowy. Istnieje tylko jedno ograniczenie wykorzystania tego kodu:
wszystkie biblioteki stworzone na bazie GTK+ muszą także stosować się
do licencji otwartego źródła.
Licencja GTK+ ma znaczące konsekwencje. Ponieważ dostępny jest kod
źródłowy, biblioteka ta nigdy nie stanie się martwym produktem, dopóki
będą używać jej twórcy oprogramowania. Dzięki dostępności źródeł
każdy programista może usunąć usterki w używanej przez siebie wersji,
a następnie zgłosić poprawki osobom utrzymującym projekt GTK+
w celu dołączenia ich do głównej gałęzi projektu. Podejście to zmienia
wielu programistów używających GTK+ w programistów samego GTK+,
prowadząc do zwiększenia stabilności i wydajności biblioteki.
Jak można uzyskać GTK+?
GTK+ można pobrać ze strony WWW GTK+, pod adresem www.gtk.org.
Numerowanie wersji przypomina schemat znany z Linuksa: numery
parzyste, 1.0 lub 1.2, są wersjami stabilnymi, natomiast numery
nieparzyste, .99 lub 1.1, są wersjami rozwojowymi. Dodatkowy numer
(na przykład 1.0.5) oznacza, że do danej wersji dodano poprawki.
W jaki sposób skompilować GTK+?
Aby skompilować GTK+, należy najpierw pobrać GLIB i GTK+ ze strony
WWW GTK+. Najpierw należy skompilować GLIB, ponieważ GTK+
wykorzystuje GLIB w wielu wewnętrznych funkcjach. Po skompilowaniu
i zainstalowaniu GLIB można przystąpić do kompilacji GTK+.
Jestem nowicjuszem - jak skompilować kod źródłowy?
Pakiety GLIB i GTK+ można skompilować w kilku prostych krokach.
Pobrane pliki będą miały nazwy w rodzaju GTK+-1.2.0.tar.gz - jest to plik
zarchiwizowany i skompresowany programami tar i gzip, na co wskazuje
rozszerzenie .tar.gz. Najpierw należy rozpakować plik przy pomocy pro-
gramu gunzip, wywoływanego z wiersza poleceń w następujący sposób:
Wprowadzenie do GTK+
5
gunzip GTK+-1.2.0.tar.gz
W wyniku otrzymamy dużo większy plik archiwalny, o nazwie GTK+-
1.2.0.tar. Można teraz rozpakować go z zachowaniem właściwej struktury
katalogów, przy pomocy polecenia:
tar xvf GTK+-1.2.0.tar
[przyp. tłumacza: w nowszych wersjach Linuksa, wystarczy pojedyncze
polecenie tar zxvf GTK+-1.2.0.tar.gz]
Polecenie to utworzy wszystkie katalogi, niezbędne do skompilowania
biblioteki. Teraz należy wejść do nowo utworzonego katalogu i wpisać
./configure
aby uruchomić program konfiguracyjny. Tworzy on plik makefile,
z pomocą którego można skompilować bibliotekę. Jeśli nie zgłosi on
żadnych błędów, wystarczy wpisać:
make
aby skompilować bibliotekę. Następnie trzeba ją zainstalować, do czego
niezbędne są uprawnienia roota. Polecenie, które instaluje bibliotekę
w systemie, to
make install
Aby biblioteka została rozpoznana przez system, konieczne może okazać
się uruchomienie programu /sbin/ldconfig. Oczywiście, przed kompilacją
i instalacją GTK+ należy skompilować i zainstalować GLIB.
Co jest potrzebne do uruchomienia przykładów?
Przykłady zostały skompilowane w Linuksie (wersja jądra 2.0) przy
pomocy kompilatora gcc w wersji 2.7.2. Nie testowano kompilatora egcs,
który jednak również powinien działać. Przykłady pracują w wersji 1.1.5
GTK+ i powinny pracować w wersji 1.2. Wiele spośród nich nie uruchomi
się zGTK+ 1.0.x bez zmian wkodzie źródłowym. Zakładając, że
wszystko jest właściwie skonfigurowane, wystarczy wejść do jednego
z przykładowych katalogów i wpisać make, aby skompilować program.
Skąd wziąć przykładowe programy?
Ci, których nie bawi ślęczenie nad klawiaturą, mogą pobrać przykłady
spod następujących adresów:
http://www.mcp.com/product_support/
6
Część I Programowanie w GTK+
www.robomatic.ip.pl
Dostępny jest kod źródłowy wszystkich przykładowych programów
w książce. Wszystko, czego potrzeba, to GTK+ 1.2.
Gdzie zwrócić się o pomoc?
Oprócz tej książki, istnieje kilka innych źródeł pomocy. Strona WWW
GTK+ zawiera podręcznik oraz kilka przykładowych programów dla
GTK+, nie licząc repozytorium innych aplikacji GTK+, które mogą okazać
się bardzo pomocne w nauce. W źródłach GTK+ znajduje się katalog
przykładów, zawierający aplikacje demonstrujące różne aspekty
programowania GTK+. Aplikacja testGTK+ może posłużyć do
przetestowania wszystkich kontrolek (ang. widgets ) w GTK+, a jej kod
źródłowy może okazać się bezcenny, kiedy nie można znaleźć
dokumentacji dla jakiejś kontrolki, ponieważ prawdopodobnie jest ona
uwzględniona w testGTK+. Oczywiście, dla odważnych zawsze dostępny
jest pełny kod źródłowy GTK+.
Jeśli w żadnych z tym źródeł nie znajdziemy odpowiedzi na nasze
pytania, możemy spróbować różnych list wysyłkowych, dotyczących
GTK. Doświadczeni twórcy aplikacji GTK+ odpowiedzą na nasze
pytania, od prostych do bardzo złożonych. Główne listy wysyłkowe to
GTK-list@redhat.com i GTK-app-devel-list@redhat.com. Aby zapisać się na
listę GTK-list, należy wysłać wiadomość do GTK-list-request@redhat.com
ze słowem „subscribe” w temacie. Podobnie, aby zapisać się na listę
GTK-app-devel-list, należy wysłać wiadomość do GTK-app-devel-list-
request@ redhat.com ze słowem „subscribe” w temacie. Należy zdawać
sobie sprawę, że na obu listach, a zwłaszcza GTK-list, panuje spory ruch -
około 50 wiadomości e-mail dziennie, a czasami nawet więcej.
Zgłoś jeśli naruszono regulamin