Tutorial Qt - 1. Introducere, primul proiect

Tutorial Qt - 1. Introducere, primul proiect

Postby morpheus » 24 Jan 2010, 22:33

Tutorial Qt



Lectia 1. Introducere, primul proiect



1 Introducere

1.1 Ce este Qt ?
Qt (se pronunta cute) este un framework destinat dezvoltarii de aplicatii cross-platform. Qt permite dezvoltarea de aplicatii portabile, la nivel de cod sursa, care sa functioneze pe sistemele de operare majore (Windows, Unix/Linux, Mac OS X, diverse sisteme embedded, etc).
Aplicatiile scrise cu ajutorul framework-ului Qt sunt portabile in sensul ca, teoretic, codul sursa trebuie doar recompilat pe o anumita platforma, pentru a obtine o aplicatie functionand pe acea platforma.
Qt este detinut de catre firma Nokia, dar este oferit sub o licenta duala (atat comerciala cat si LGPL).
Qt este scris in C++, si se adreseaza in special dezvoltatorilor C++. Totusi, exista "binding-uri" si pentru alte limbaje de programare (Java, Python, C#, Ruby, etc). Probabil cele mai cunoscute sunt Jambi (binding-ul pentru Java), PyQt (binding-ul pentru Python) si Qyoto (binding-ul pentru C# si alte limbaje .Net).
Printre cele mai populare aplicatii scrise folosind Qt, putem enumera: Google Earth, KDE si versiunea de Linux a clientului Skype.
Qt permite dezvoltarea de aplicatii complete, punand la dispozitia programatorului API-uri pentru lucrul cu interfete grafice, fire de executie, programare client-server, acces la baze de date, lucrul cu fisiere XML, animatie, rendering 2D, integrare cu OpenGL, procesare de imagini, etc.
Documentatia Qt, in limba engleza este disponibila online

1.2 Despre aceasta serie de tutoriale
Vom folosi limbajul C++. Aceste tutoriale nu va vor invata limbajul C++ in sine, ci cum sa folositi framework-ul Qt.
Ca o consecinta, se presupune ca aveti deja cunostinte de baza in privinta limbajului C++ (clase, mostenire, polimorfism, supraincarcarea operatorilor, cunostinte de baza despre template-uri). Cunostintele de STL nu sunt absolut necesare, dar sunt binevenite.
De asemenea, sunt necesare cunostinte de limba engleza. Documentatia Qt este in limba engleza.
Codul sursa prezentat va fi in limba engleza, inclusiv comentariile.
Exemplele prezentate vor fi testate pe Windows XP SP3 si Ubuntu Linux 9.04
Ele ar trebui sa functioneze si pe alte versiuni de Windows (Windows 2000, Vista, Windows 7) si pe orice versiune recenta de Linux

2. Primul proiect
Primul pas il consta in descarcarea SDK-ului. In momentul scrierii acestui tutorial, ultima versiune era Qt 4.6
Puteti descarca SDK-ul de la link-ul urmator: http://qt.nokia.com/downloads. Selectati versiunea LGPL
In cazul in care folositi Windows, ar trebui sa selectati si MinGW la instalare (bineinteles, cu exceptia cazului in care nu il aveti deja instalat).
SDK-ul, pe langa librariile necesare, contine si diverse tool-uri foarte utile:
- Qt Creator -> un IDE folosit pentru dezvoltarea de aplicatii C++, cu suport special pentru Qt. Puteti crea proiecte, edita codul sursa, compila si face debug la aplicatii Qt folosind Qt Creator. Desi puteti folosi si alte IDE-uri pentru dezvolta aplicatii Qt, Qt Creator este o alegere foarte buna.
- Qt Designer -> un designer, utilizat pentru crearea rapide de interfete grafice in Qt. Nu vom folosi Qt Designer in aceasta serie de tutoriale, pentru dezvoltarea de interfete grafice. Vom scrie direct cod sursa, pentru a realiza acest lucru.
- Qt Assistant -> un utilitar folosit pentru prezentarea documentatiei de tip help
- Qt Linguist -> un utilitar folosit pentru internationalizarea aplicatiilor Qt

In ceea ce urmeaza, voi prezenta pasii necesari pentru realizarea primului proiect Qt, folosind Qt Creator.

1. Porniti Qt Creator

2. Selectati optiunea New File or Project din meniul File

primul proiect

3. Selectati optiunea Qt4 Gui Application, din dialogul New.... Apasati butonul OK

Image

4. Completati numele si locatia proiectului, apoi apasati butonul Next

Image

5. Se va deschide un dialog, in care puteti selecta diverse module de care proiectul vostru are nevoie.
Implicit, optiunile selectate sunt QtCore si QtGui. Nu e nevoie sa selectam alte module pentru proiectul nostru. Apasati butonul Next

Image

6. Urmatorul dialog se numeste Class Information
Modificati informatiile ca in figura de mai jos, apoi apasati butonul Next

Image

7. Va aparea dialogul Project Management. Nu e necesar sa modificati nimic in acest dialog. Apasati butonul Finish

8. Puteti vedea fisierele sursa din proiect in view-ul Projects

view proiect Qt

9. Urmatorul pas este sa compilam proiectul
Selectati optiunea Build project - "first_project", din meniul Build, sau apasati combinatia de taste Ctrl + B

compilare proiect Qt

10. Selectati optiunea Run, din meniul Build

rulare proiect Qt

11. Rezultatul rularii aplicatiei

Image

Sunt disponibile shortcut-uri pentru a compila si a rula un proiect:

shortcuturi Qt

Putem compila proiectul si din linie de comanda.
Din meniul Start al Windows-ului, deschideti Qt Command Prompt. Schimbati calea pana cand ajungeti in directorul proiectului first_project.

Executati:
  1.  
  2. qmake -project
  3. qmake
  4. mingw32-make clean
  5. mingw32-make
  6.  


qmake -project creeaza fisierul proiect, numit first_project.pro. Aici sunt specificate detaliile proiectului.
qmake genereaza un fisier Makefile, folosit pentru a compila proiectul cu utilitarul Make (in cazul MinGW,mingw32-make)
mingw32-make compileaza proiectul
mingw32-make clean curata rezultatele obtinute in urma unei rulari anterioare a comenzii mingw32-make

Observatii:
- daca folositi Linux, utilizati comanda make in loc de mingw32-make
- pe anumite versiuni de Linux (exemplu Ubuntu), va trebui sa folositi qmake-qt4 in loc de qmake

Lectia 2. Notiuni de baza

5.67 points / 3 votes
To understand recursion, we first need to understand recursion - Anonymous
User avatar
morpheus
Word
 
Joined: 30 Dec 2009
Points: 33.34

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby Figlet » 01 Feb 2010, 15:41

Multumesc mult pentru tutorial! Sper sa continui seria asta de tutoriale! :P Stiu ca pare ciudat, dar nu am putut niciodata sa inteleg in totalitate documentatia oficiala.

PS: tnx inca o data! :P

0,0 points / 0 votes
Figlet
Bit
 
Joined: 13 Jan 2010
Points: 2.5

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby morpheus » 01 Feb 2010, 19:31

Ma bucur ca iti place. Vor fi in jur de 10 lectii.

0,0 points / 0 votes
To understand recursion, we first need to understand recursion - Anonymous
User avatar
morpheus
Word
 
Joined: 30 Dec 2009
Points: 33.34

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby Akun » 10 Mar 2010, 00:47

Salut! Imi poti spune ,te rog, unde gasesc Qt 3.3 pentru windows? Nu il gasesc nicaieri si incep sa am indoieli ca exista.
Mersi.

0,0 points / 0 votes
Akun
 
Joined: 10 Mar 2010
Points: 0

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby DarkByte » 10 Mar 2010, 11:41

Din ce am citit aici, trebuie sa ai licenta ca sa-l poti downloada.

0,0 points / 0 votes
Image
User avatar
DarkByte
DWord
 
Joined: 29 Dec 2009
Points: 78

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby Akun » 10 Mar 2010, 21:36

Ms. Am cautat cateva zile si nu am gasit nimic, doar sub linux.

0,0 points / 0 votes
Akun
 
Joined: 10 Mar 2010
Points: 0

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby Akun » 18 Mar 2010, 19:51

Salut. Am gasit ceva qt 3.3 doar ca mie unu nu imi merge. Acum sper ca am luat ce trebuie. Daca mai e cineva interesat, doar sa ziceti. E indeajuns cat l-am cautat eu, sa nu il mai caute si altii :))

0,0 points / 0 votes
Akun
 
Joined: 10 Mar 2010
Points: 0

Re: Tutorial Qt - 1. Introducere, primul proiect

Postby morpheus » 20 Mar 2010, 00:39

In mod normal ar trebui folosita ultima versiune stabila 4.x (in momentul de fata 4.6.2), cu exceptia cazurilor in care vrei sa compilezi cod legacy scris folosind 3.x.
Versiunile incepand cu 4.5 ofera versiunea de licenta LGPL si SDK-ul pentru windows poate fi downloadat si folosit in mod gratuit.

0,0 points / 0 votes
To understand recursion, we first need to understand recursion - Anonymous
User avatar
morpheus
Word
 
Joined: 30 Dec 2009
Points: 33.34


Return to Tutoriale QT

Who is online

Users browsing this forum: No registered users and 0 guests