Introducere
Pagina urmatoare va folosi un limbaj care este utilizat de programatorii de
interfete grafice (GUI = Graphical User Interface), de exemplu cuvintul widget.
Un widget reprezinta elemente pe care le vedeti pe ecran: un buton, o fereastra, o bara de defilare,
un meniu etc. Dupa cum ati observat, unele widget-uri contin alte widget-uri
(bara de defilare de exemplu). Din punct de vedere al programarii trebuie sa va
ginditi ca toate widget-urile specializate mostenesc o clasa de baza widget,
care este clasa QWidget.
Aranjarea grafica a widget-urilor reprezinta modul in care sint plasate pe ecran:
unul sub altul, unul linga altul etc.
Voi incerca sa explic celelalte cuvinte pe masura ce apar.
Compilarea unei aplicatii KDE
In arhiva cu fisierele sursa ale acestui tutorial folosesc programele autoconf
si automake pentru a genera fisierele Makefile.
Exista o multime de scripturi complexe facute de Stephan "Coolo" Kulow.
Aceste scripturi au fost copiate din pachetele standard KDE si modificate putin pentru a
fi folosite in acest tutorial.
Daca executati comanda: "make -f Makefile.dist" vor fi generate scriptul
configure si fisierele Makefile.in in fiecare director care le va folosi.
Pentru ca operatiunea sa fie completa este necesar ca suita de utilitare
autoconf/automake sa fie instalata pe calculatorul dumneavoasta.
In loc sa scriem o gramada de reguli in fiecare fisier Makefile.am, ca sa le genereze,
Stephan face ceva "magic" cu scripturile. Daca nu aveti automake si autoconf,
nu va faceti griji, nu este neaparat necesar sa incercati tutorialele si puteti
trece la sectiunea urmatoare.
In orice caz este neaparat necesar sa aveti automake si autoconf cind veti
incepe sa dezvoltati propriile aplicatii.
Cind executati "./configure" sint create fisierele Makefile pe
baza fisierelor model Makefile.in create mai devreme.
Abia acum puteti executa comanda "make" pentru compila fisierele sursa C++.
moc
Dupa cum ati citit mai devreme in tutorial, anumite fisiere trebuie preprocesate de
compilatorul metaobiect, moc.
Pentru a indica folosirea moc, trebuie facut un artificiu, care
consta in adaugarea in Makefile.am a declaratiei de mai jos:
METASOURCES = AUTO
Scriptul care generaza fisierele Makefile il va analiza si va genera
reguli ca sa creeze acele fisiere folosind utilitarul moc.
Secventa de cod make care va procesa sursele metaobiect, din
Makefile este ceva de genul:
p3.moc.cpp: $(srcdir)/p3.h
$(MOC) $(srcdir)/p3.h -o p3.moc.cpp
Similar cu acesta, in exemplele P6,
P7 si P8
va fi nevoie sa folosim un preprocesor pentru interfata DCOP. Aceasta cerinta se
rezolva cu urmatoarele comenzi:
dcopidl appIface.h > appIface.kidl
dcopidl2cpp --no-stub appIface.kidl
Comenzile de mai sus vor genera un fisier appIface.kidl cu o definitie XML a
aplicatiei, si un fisier C++ numit appIface_skel.cpp cu scheletul interfetei
pregatit pentru implementare. Daca sinteti obisnuit cu programarea CORBA veti observa
ca modalitatea de denumire a "scheletelor" (skeletons) si
"cioturilor" (stubs) este asemanatoare.
Mai multe informatii
Daca acest tutorial va este de folos, dupa ce il cititi veti putea sa
incepeti propria aplicatie KDE. Daca asa vor sta lucrurile, probabil veti
intimpina probleme care nu sunt descrise in aceste pagini si de aceea am pus citeva
notite, adrese etc. care s-ar putea sa va fie de folos.
Cititi documentatiile
Qt vine cu cea mai buna documentatie pe care am vazut-o vreodata. Aruncati o privire daca
nu stiti ce face o anumita clasa sau cind vreti sa stiti daca o metoda face ceva care
va trebuie. Documentatia Qt poate fi citita on-line
la http://doc.trolltech.com.
Am in colectia de semne de carte de la Konqueror, directorul cu documentatia de la Qt.
Asta imi permite sa o accesez rapid cind imi trebuie. Un alt artificiu pe care eu il
folosesc foarte des este crearea de acceleratori web, care imi permit sa accesez
documentatia oricarei clase scriind doar qt:o_anumita_clasa in bara de locatie din
Konqueror (de exemplu: "qt:qstring"). Ca sa puteti face asta deschideti sectiunea
"Enhanced Browsing" din setarile lui Konqueror si adaugati un nou accelerator de web.
Scrieti "file:/usr/lib/qt3/doc/html/\{@}.htm"
(calea unde ati instalat documentatia Qt) in sectiunea "URI de cautare" si "qt" la sectiunea
"Accelerator URI".
Librariile KDE nu sunt nici ele departe si vin cu o sumedenie de documentatii. Puteti sa le
descarcati de la
Referinta API KDE 3.1
Daca nu puteti descarca documentatiile sau nu doriti sa descarcati un pachet asa de mare,
puteti genera documentatia chiar din sursele kdelibs daca aveti instalat
Doxygen si executati make apidox din directorul radacina al kdelibs.
Contacte
Daca doriti sa va alaturati echipei KDE, abonati-va la listele de discutii KDE
care va intereseaza.
Daca sinteti programator, probabil la kde-devel@kde.org, daca desenati iconite,
alaturati-va echipei artistilor, daca doriti sa traduceti KDE intr-o limba contactati
echipa traducatorilor etc.
Toate listele de discutii sint descrise la
http://www.kde.org/mailinglists/,
unde puteti citi instructiunile despre modul în care puteti subscrie la ele.
Ar fi bine sa aruncati o privire si la http://developer.kde.org, unde veti gasi informatii complete despre
dezvoltarea KDE, care includ manuale, documentatii (arhivate pentru descarcare
eficienta), tutoriale etc.
Mai exista si o pagina cu raspunsuri la intrebari frecvente (FAQ) pe care ar trebui sa o
cititi: http://developer.kde.org/documentation/other/developer-faq.html.
Medii integrate de dezvoltare (IDE)
As vrea sa fac o recomandare celor care vor sa foloseasca un IDE,
pe care nu sinteti nevoit sa-l parasiti in nici unul din momentele
dezvoltarii de aplicatii: KDevelop. Il puteti gasi la
http://www.kdevelop.org si
va este de mare ajutor pentru a incepe lucrul in KDE.
KDevelop este un IDE complet pentru dezvoltarea aplicatiilor (KDE, Qt sau aplicatii de consola),
cu optiuni de evidentiere a sintaxei, editor de dialoguri, depanator integrat,
modele pentru aplicatii, suport CVS integrat, suport pentru traducere, editor de
iconite si multe altele.
Qt/Designer este un utillitar excelent care simplifica foarte mult generarea
codului sursa. Il folosesc foarte des sa creez ferestre si widget-uri pentru aplicatii.
Ghid pentru interfata grafica cu utilizatorul
Nu vreau sa termin aceasta introducere fara a va vorbi despre ghidul pentru
interfata grafica cu utilizatorul, ghid care pe il puteti gasi la
http://developer.kde.org/documentation/standards/kde/style/basics/index.html.
Pentru a simplifica expunerea in paginile urmatoare nu voi respecta intocmai
ghidul de mai sus. Nu-i nevoie sa mai spunem ca toti programatorii KDE care
dezvolta o aplicatie reala (nu un simplu tutorial) trebuie sa citeasca
complet ghidul si sa-l respecte pe cit se poate de mult. Motivul este evident.
Ne mai avind nimic de zis, haideti sa incepem tutorialul!
|