Pagina principala
Informatii
Internationalizarea
pROgrame KDE/Qt
Download
Documentatii
Despre LKR
Contact
Resurse
Harta site-ului

Tutorial programare KDE 3


   Antonio Larrosa
   14 martie 2002

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!



Traducere de Bogdan Daniel Vatra. Adaptare de Claudiu Costin.