Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012       Mediul de programare        multiplatformă QtDrag...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                   Qt. Code less. Create more. Deploy ev...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                   Qt. Code less. Create more. Deploy ev...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                   Qt. I...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                               Modulele ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                   Modul...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                               Arhitectu...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                   Modul...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                   Mediul integrat de de...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                   Mediul integrat de de...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                   Mediul integrat de de...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                   Mediul integrat de de...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                   Mediul integrat de de...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                       I...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012                                                        ...
Upcoming SlideShare
Loading in...5
×

Mediul de programare multiplatforma Qt

1,274

Published on

O prezentare a mediului de programare multiplatforma Qt

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,274
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mediul de programare multiplatforma Qt

  1. 1. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Mediul de programare multiplatformă QtDragoş Acostăchioaie http://www.unixinside.org dragos@unixinside.org
  2. 2. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. Code less. Create more. Deploy everywhere ✗ Qt facilitează dezvoltarea de aplicații C++ si interfete utilizator independente de platformă ✗ sunt suportate o largă varietate de platforme hardware și software, de tip desktop, mobile şi embedded ✗ Qt suportă platformele: ✗ Linux/X11, dar şi alte UNIX flavours (ex FreeBSD, Solaris, HP-UX, AIX) ✗ MacOS ✗ Windows ✗ Embedded Linux ✗ Symbian OS (Qt este SDK standard pentru Symbian OS incepand cu 2010) ✗ Windows CE ✗ Maemo, MeeGo ✗ Qt suportă mediile integrate: ✗ Qt Creator ✗ Eclipse ✗ Microsoft Visual Studio ✗ Qt poate interactiona cu alte limbaje, cum ar fi Java (Qt Jambi), precum si cu limbaje de scripting, cum ar fi QML, JavaScript sau PhytonDragoş Acostăchioaie - http://www.unixinside.org
  3. 3. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. Code less. Create more. Deploy everywhere ✗ un singur cod sursă funcţionează fără modificări pe platforme diferite (write once, run everywhere – vezi şi paradigma de portare a soluţiilor FOSS) ✗ performanţe superioare faţă de limbajele care rulează într-o maşină virtuală (Java), fiindcă codul binar se execută nativ, rezultând un consum semnificativ mai redus de resurse ✗ utilizează sistemul grafic al sistemului de operare pe care rulează; astfel, aplicaţiile au aspectul şi comportamentul nativ al sistemului gazdă ✗ trecerea de la un sistem de operare la altul nu necesită modificări ale codului sursă, ci doar compilarea acestuia pe fiecare platformă în parte (dacă nu s-au folosit functionalităţi/biblioteci specifice) ✗ asigură codul sursă împotriva schimbărilor viitoare ale platformelor gazdă (la nivel sursă sau binar; dezvoltatorii se pot astfel concentra pe dezvoltarea aplicaţiilor, nu pe modificările API-ului ✗ pot fi atinse mai uşor pieţe multiple (dedicate diferitelor sisteme de operare) ✗ costuri mai mici de mentenanţă a coduluiDragoş Acostăchioaie - http://www.unixinside.org
  4. 4. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Biblioteca Qt Biblioteca de clase Qt cuprinde (non-exhaustiv): ✗ interfaţă utilizator - QtGui ✗ grafică 2D ✗ grafică 3D cu OpenGL ✗ fire de execuţie multiple ✗ sistem de ferestre pentru sisteme mobile/embedded ✗ comunicaţie intre obiecte ✗ suport pentru stream-uri multimedia ✗ integrare a sistemului WebKit ✗ comunicaţii de reţea ✗ procesare XML ✗ acces la baze de date relaţionale ✗ clase template ✗ motor de scripturi ECMADragoş Acostăchioaie - http://www.unixinside.org
  5. 5. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. Instrumente pentru dezvoltare ✗ Qt Creator – mediu integrat de dezvoltare ✗ editor de cod C++ şi JavaScript ✗ instrumente pentru gestiunea proiectelor ✗ sistem de ajutor contextual integrat ✗ depanator (bazat pe GDB) ✗ proiectarea interfeţei utilizator ✗ controlul versiunilor ✗ instrumente pentru gestiunea codului sursă suport pentru platformele desktop şi cele mobile/embedded ✗ Qt Designer – proiectarea interfeţei utilizator ✗ Qt Linguist – facilitează traducerea aplicaţiilor în mai multe limbi ✗ Qt Assistant – ajută la realizarea documentaţiei pentru aplicaţiile Qt ✗ Virtual Framebuffer – permite dezvoltarea şi depanarea aplicaţiilor embedded pe desktop ✗ instrumente ce asigură integrarea cu IDE-urile Microsoft Visual Studio şi EclipseDragoş Acostăchioaie - http://www.unixinside.org
  6. 6. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt Quick ✗ Sistem integrat pentru proiectarea interfetei grafice: ✗ Qt Creator – mediu integrat de dezvoltare (permite editarea QML, proiectarea elementelor interfetei, simularea interfeţei pentru dispozitive mobile – QML Viewer) ✗ QML – limbajul de marcare utilizat de Qt Quick, pentru a descrie interfata utilizator (asemanator CSS si Javascript), independent de platforma ✗ Qt Quick UI Runtime – acces direct la API-urile native ✗ plugin-uri pentru Adobe Photoshop si GIMP pentru a exporta elemente de interfata in QML import QtQuick 1.0 Rectangle { id: page width: 500; height: 200 color: "lightgray" Text { id: helloText text: "Hello world!" y: 30 anchors.horizontalCenter: page.horizontalCenter font.pointSize: 24; font.bold: true } }Dragoş Acostăchioaie - http://www.unixinside.org
  7. 7. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. Licenţe de utilizare Qt Commercial GNU LGPL v2.1 GNU GPL v3.0 Developer License Cost de licenţiere Taxă de licenţiere Fără costuri Fără costuri (de la ~3000 $) Trebuie furnizate Nu Trebuie furnizat Trebuie furnizat modificările codului codul sursă codul sursă sursă Qt Pot fi realizate aplicaţii Da Da, în concordanţă Nu, aplicaţiile sunt proprietare cu termenii LGPL sub licenţă GPL şi trebuie furnizat codul sursă Sunt furnizate Da, sunt trimise Da Da actualizări imediat notificări celor care au contract de suport Este furnizat suport Da, celor cu contract Disponibil contra Disponibil contra tehnic încheiat cost cost Taxă pentru Pentru unele Nu Nu executabile platforme embeddedDragoş Acostăchioaie - http://www.unixinside.org
  8. 8. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Aplicaţii care utilizează Qt ✗ peste 450.000 de dezvoltatori care utilizează Qt ✗ mediul desktop KDE şi majoritatea aplicaţiilor KDE (KOffice, Amarok etc.) ✗ Skype ✗ Google Earth ✗ VLC ✗ Walt Disney Animation Studios ✗ Next Limit Technologies (grafica 3D şi efecte vizuale, aplicaţii CAD) ✗ Marble (hărţi) ✗ Avogadro (editor molecular) ✗ Deutsche Flugsicherung GmbH ✗ xTuple ERP ✗ numeroase companii: Nokia, Asus, Philips, Volvo, Samsung, Sony, Panasonic, Motorola, Accton, SharpDragoş Acostăchioaie - http://www.unixinside.org
  9. 9. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Dispozitive care utilizează Qt ✗ telefoane mobile, palmtop, media playere, dispozitive dedicate, … ✗ Motorola: MOTOROKR Z6, E6 si E2, MOTOMING A1200, A680, E680, A780, A760, A768 ✗ Sony Mylo (PDA) ✗ Panasonic KX-WP1050 (telefoane WiFi pentru Skype) ✗ Accton (telefoane WiFi pentru Skype) ✗ ZTE U980 (telefoane mobile) ✗ Archos PMA400, 404, 604, 604WiFi (playere multimedia) ✗ Fluke Networks EtherScope series II (tester de retea) ✗ Sharp SL-5500, SL-A300, SL-C700, SL-C750, SL-5600, SL-C760, SL-6000, SL-C860 (PDA) ✗ Volvo Human-Machine Interface for buses, alte aplicaţii de tip Automotive Infotainment ✗ SDG systems TDS Recon (PDA) ✗ Samsung Techwin SRD-16700 (player multimedia) ✗ Quanta Computer videophone YE7 ✗ digitalCube i-Station T43 (media player portabil) ✗ Nokia N8, N9, alte telefoane mobile bazate pe Symbian OS ✗ Asus Eee PC, Eee Note EA800; Asus DR-950 e-Reader ✗ Barco (proiectoare de film digitale)Dragoş Acostăchioaie - http://www.unixinside.org
  10. 10. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Scurt istoric ✗ 1994 – este lansată prima versiune Qt, de către Trolltech (Norvegia) ✗28 iunie 2005 – Qt versiunea 4 (reprezintă un progres considerabil faţă de versiunile anterioare) ✗iunie 2008 – Trolltech este cumpărat de Nokia (progres considerabil în dezvoltarea Qt pe platforme mobile) ✗ 2011 – Digia (Finlanda) cumpără afacerea cu licenţe comerciale Qt dela Nokia ✗2012 – este în curs de finalizare achiziţia de către Digia a întregii tehnologii şi afaceri Qt dela Nokia ✗în acest moment – zeci de mii de aplicaţii (comerciale sau open-source) sunt bazate pe Qt ✗ peste 15 milioane de dispozitive mobile care folosesc Qt aflate pe piaţăDragoş Acostăchioaie - http://www.unixinside.org
  11. 11. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Biblioteca Qt. Module Biblioteca Qt are la bază o structură modulară: ✗ QtCore ✗ QtOpenGL ✗ QtGui ✗ QtOpenVG ✗ QtMultimedia ✗ QtXmlPatterns ✗ QtNetwork ✗ Phonon ✗ QtOpenGL ✗ QtScript ✗ QtSql ✗ QtXml ✗ QtWebKitDragoş Acostăchioaie - http://www.unixinside.org
  12. 12. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtCore ✗ operații citire-scriere ✗ manipularea obiectelor şi a evenimentelor ✗ fire de execuție multiple ✗ suport pentru plugin-uri ✗ comunicarea între obiecte, cu ajutorul semnalelor şi al slot-urilor ✗include numeroase clase template proprii: clase container, clase iterator (stil STL sau Java), etc.Dragoş Acostăchioaie - http://www.unixinside.org
  13. 13. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. Semnale şi sloturi ✗ alternativă eficientă la sistemul clasic de comunicare între obiecte (event listeners) ✗sloturile sunt funcţii membre ale claselor (derivate din QObject), care sunt apelate ca răspuns la un anumit semnal ✗ există un set de semnale şi sloturi predefinite ✗un semnal poate fi conectat la mai multe sloturi, un slot la mai multe semnale sau un semnal la alt semnal ✗ atunci cand se petrece un eveniment se emite un semnalDragoş Acostăchioaie - http://www.unixinside.org
  14. 14. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. Semnale şi sloturiDragoş Acostăchioaie - http://www.unixinside.org
  15. 15. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtGui ✗ conţine un set complet de widget-uri configurabile – de la butoane şi dialoguri până la tabele şi meniuri de tip arbore ✗ widget-urile se redimensionează automat în funcţie de orientarea şi dimensiunea ecranului sau a ferestrei ✗ sistem de layout-uri şi grid-uri pentru a uşura poziţionarea widget- urilor ✗ suport pentru fonturi (utilizează fonturile de pe maşina gazdă) şi anti- aliasing ✗ crearea de stiluri oferite de mecanismul QtStyleSheet (inspirat din CSS); interfața este ușor configurabilă, cu doar câteva linii de cod CSS ✗ suport pentru SVG (grafică vectorială scalabilă), grafică accelerată hardware şi ieşiri video multipleDragoş Acostăchioaie - http://www.unixinside.org
  16. 16. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtGui ✗ gestiunea şi interacţiunea cu elemente grafice 2D şi un widget pentru vizualizarea acestor elemente, cu suport pentru rotaţie şi mărire, transformare în perspectivă, animaţie, drag-and-drop şi suport pentru tipărire ✗ oferă posibilitatea de a utiliza motoare grafice multiple (nativ, raster, XRender, OpenGL, Postscript etc.) ✗ oferă suport pentru Unicode şi pentru limbaje bidirecţionale ✗ permite localizarea aplicaţiei în mai multe limbi fără recompilarea codului sursă ✗ suportă OpenVG – API pentru grafică vectorială accelerată hardware, regăsită pe numeroase dispozitive embeddedDragoş Acostăchioaie - http://www.unixinside.org
  17. 17. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulele QtMultimedia şi Phonon ● QtMultimedia oferă suport la nivel scăzut pentru audio şi video ● arhitectură independentă de platformă (chiar și pe platforme mobile/embedded) – Phonon, care asigură utilizarea de conținut audio și video în aplicații ● este posibilă redarea locală sau prin streaming ● abstractizează formatele native multimedia: QuickTime pe Mac, DirectShow pe Windows și GStreamer pe Linux ● se pot citi meta-informațiile din fișiere (titlul, albumul, artistul etc.)Dragoş Acostăchioaie - http://www.unixinside.org
  18. 18. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulele QtNetwork şi QtDBus ✗ simplifică programarea în rețea ✗ clase de nivel înalt, cum ar fi QHttp sau QFtp, care implementează protocoalele de la nivelul aplicație ✗ clase de nivel scăzut, cum ar fi QTcpSocket,QTcpServer și QUdpSocket ✗ suportă HTTP, FTP, DNS și HTTP 1.1 asincron ✗ suport pentru accesarea mai multor tipuri de date, de la HTML și XML, până la imagini și fișiere media ✗ suport pentru comunicaţia intre procese (IPC) şi apeluri de proceduri de la distanţă (RPC), prin protocolul D-BUS (doar pentru Linux)Dragoş Acostăchioaie - http://www.unixinside.org
  19. 19. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtOpenGL ✗ OpenGL este o bibliotecă utilă pentru crearea de aplicații portabile cu grafică accelerată hardware, cu performanță ridicată ✗ include OpenGL ES – un motor de desenare – pentru platformele Embedded Linux și Windows CE ✗ suportă Direct3D pe Windows ✗ OpenGL oferă puțin suport pentru interfețe cu utilizatorul, dar Qt face posibilă îmbinarea conținutului OpenGL cu acestea ✗ uşurează programarea utilizând OpenGL ✗ oferă un widget special, care se comportă ca şi celelalte widget-uri dar foloseşte OpenGLDragoş Acostăchioaie - http://www.unixinside.org
  20. 20. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtScript ✗ Qt include un motor de scripturi ECMA, bazat pe JavaScriptCore ✗ face posibilă integrarea obiectelor Qt (derivate din QObject) şi utilizarea sistemului de semnale şi sloturi în scripturi, deci integrarea între C++ şi scripturi ✗ include un depanator pentru scripturi Qt, deci poate raporta erorile din scripturi şi poate ajuta la localizarea acestoraDragoş Acostăchioaie - http://www.unixinside.org
  21. 21. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtSql ✗ oferă conectivitate cu cele mai importante sisteme de baze de date relaţionale ✗ suportă ODBC, MySQL, PostgreSQL, SQLite, ibase, Oracle, Sysbase, DB2 (drivere modulare) ✗ oferă o interfaţă independentă de sistemul de baze de date utilizat, asigurând o bună portabilitate ✗ se poate folosi împreună cu modelul de programare Model-View- ControllerDragoş Acostăchioaie - http://www.unixinside.org
  22. 22. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Arhitectura Model-View-Controller ✗ arhitectura Model-View-Controller este folosită pentru afişarea şi manipularea datelor provenite din orice sursă (inclusiv SQL) ✗ gestionează relaţia dintre informaţii şi modul de afişare a acestora ✗ datele pot fi reprezentate vizual în tabele, liste, liste arborescente, form-uri sau după dorinţa programatoruluiDragoş Acostăchioaie - http://www.unixinside.org
  23. 23. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulele QtXml şi QtXmlPatterns ✗ sistem pentru scrierea şi citirea documentelor XML şi implementări ale protocoalelor SAX și DOM ✗ include XQuery, un limbaj asemănător SQL, cu ajutorul căruia se poate parcurge un document XML, din care se pot alege unele elemente pentru export în alt XML sau în alt format ✗ suportă XPath 2.0, limbajul de transformare XSLT şi validarea schemelor XMLDragoş Acostăchioaie - http://www.unixinside.org
  24. 24. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Modulul QtWebKit ✗ conține un motor de browser HTML – WebKit - care simplifică includerea de conținut web în aplicații ✗ suportă HTML, XHTML, SVG, CSS şi JavaScript ✗ suportă includerea de fişiere Flash şi elemente audio sau video ✗ permite conectarea JavaScript cu obiecte QtDragoş Acostăchioaie - http://www.unixinside.org
  25. 25. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt Installer ✗ arhitectură care oferă un set de instrumente şi utilitare pentru realizarea de sisteme de instalare ale aplicaţiilor ✗ funcţionează pe Linux, MacOS şi Windows şi au aspectul nativ al platformei utilizate ✗ sistemul de instalare este configurabil, putându-se adăuga noi widget-uri şi crea scripturi pentru a realiza operaţiuni noi ✗ sistemul de instalare poate fi offline (conţin toate componentele necesare) sau online (conţinutul poate fi descărcat de pe un server Web) ✗ oferă şi posibilitate de actualizare ulterioară a conţinutului aplicaţieiDragoş Acostăchioaie - http://www.unixinside.org
  26. 26. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Mediul integrat de dezvoltare Qt Creator ✗ wizard pentru creare/import proiecte Qt ✗ editor avansat de cod C++/QML/JavaScript ✗Qt Designer pentru proiectarea elementelor ce compun interfaţa utilizator, integrat ✗ Help Qt integrat ✗sistem de compilare a proiectelor (qmake şi CMake) ✗ sistem de gestiune a fişierelor din proiect ✗ sisteme de control al versiunilor ✗ depanarea aplicaţiilorDragoş Acostăchioaie - http://www.unixinside.org
  27. 27. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Mediul integrat de dezvoltare Qt Creator ✗ Wizard pentru proiecte Qt ✗ realizarea de proiecte noi Qt ✗ generează automat proiectul şi fişierele de bază ✗ Editor avansat de cod sursă C++/Javascript ✗ syntax highlighting ✗ completare automată a claselor membre, metodele şi argumentele funcţiilor, pentru clasele Qt şi cele definite de programator ✗ marcarea automată a erorilor de sintaxă în timpul editării ✗ auto-indentare ✗ posibilitatea de expandare/restrângere a funcţiilor ✗ căutare incrementală a cuvintelor-cheie în timpul editării ✗ comutarea uşoară între declaraţia şi definiţia unei metode ✗ posibilitatea de a face semne de carte în cadrul codului sursă ✗ posibilitatea de a lucra fără mouse şi de a deschide ferestre de editare multipleDragoş Acostăchioaie - http://www.unixinside.org
  28. 28. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Mediul integrat de dezvoltare Qt Creator ✗ Qt Designer integrat pentru proiectarea elementelor interfeţei utilizator ✗ se bazează pe editarea de form-uri, sunt generate fişiere de tip XML ✗ tehnologie de tip drag-and-drop pentru widget-uri ✗ nu este necesară recompilarea intregului proiect ✗ permite conectarea semnalelor şi sloturilor ✗ permite definirea acţiunilor pentru widget-uri ✗ pot fi utilizate layout-urile pentru a nu defini dimensiunea şi poziţia widget-urilor ✗ permite previzualizarea aspectului form-urilorDragoş Acostăchioaie - http://www.unixinside.org
  29. 29. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Mediul integrat de dezvoltare Qt Creator ✗ Help pentru biblioteca Qt integrat ✗ poate fi accesat în timpul editării prin poziţionarea pe un cuvânt-cheie ✗ sistem de compilare a proiectului ✗ prin intermediul sistemului qmake propriu Qt sau prin Cmake ✗ sistem de gestiune a fişierelor din proiect ✗ permite localizarea uşoară a unui fişier din proiect după tipul şi numele acestuia ✗ sisteme de control al versiunilor ✗ sunt suportate: Git, Subversion (SVN), CVS şi PerforceDragoş Acostăchioaie - http://www.unixinside.org
  30. 30. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Mediul integrat de dezvoltare Qt Creator ✗ compilarea şi depanarea aplicatiei ✗ sunt suportate gcc şi gdb, precum si Microsoft Visual Studio compiler/debugger ✗ pot fi stabilite puncte de întrerupere, rula aplicaţia linie-cu-linie sau instrucţiune-cu- instrucţiune, examina conţinutul variabilelor locale şi globale (variabilele compuse pot fi vizualizate în formă arborescentă) ✗ compilarea unei aplicaţii pentru dispozitive mobile ✗ permite compilarea şi execuţia unei aplicaţii pentru un anumit tip de dispozitiv mobil (modulul QTestLib) ✗ Qt Simulator ✗ Permite executia şi testarea aplicaţiei în condiţii similare rulării pe dispozitivul mobilDragoş Acostăchioaie - http://www.unixinside.org
  31. 31. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Instrumente pentru localizare ✗ Qt Linguist – set de instrumente pentru localizarea aplicaţiilor Qt ✗ aplicaţie dedicată traducerii textelor din elementele de interfaţă, uşor de utilizat şi de persoanele fără cunostinţe tehnice ✗ suportă Unicode 5.0 ✗ pot fi manipulate mai multe limbaje într-un singur document ✗ cuvintele sau frazele sunt introduse în codul sursă într-o limbă prestabilită utilizând sintaxa tr(“frază de tradus”) ✗ traducerile sunt stocate în fişiere dedicate, nefiind necesară modificarea codului sursă ✗ permite şi utilizarea formatelor XLIFF (XML Localization Interchange File Format) şi gettext (po)Dragoş Acostăchioaie - http://www.unixinside.org
  32. 32. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Arhitectura Qt Mobility ✗ colecţie de API-uri destinate dispozitivelor mobile/embedded ✗ cuprinde: ✗ Connectivity – facilitează comunicaţia între dispozitive locale ✗ Contacts – transferul de informaţii din agendă între dispozitive locale sau la distanţă ✗ Document Gallery – navigarea prin documente şi obţinerea de meta-informaţii ✗ Feedback – oferă utilizatorilor răspunsuri tactile şi audio ✗ Location API – servicii de localizare, hărţi şi navigare ✗ Messaging – accesul la servicii de mesagerie ✗ Multimedia – navigarea, rularea şi înregistrarea de conţinut media ✗ Organizer – calendar, planificator şi alte date personale ✗ Publish and Subscribe – publicarea de conţinut ✗ Qt Service Framework – permite utilizarea de servicii diverse ✗ Qt Mobility QML Elements – elemente QML pentru dispozitive mobile ✗ Qt Mobility QML Plugins – plugin-uri QML pentru proiectul Qt Mobility ✗ Sensors – acces la senzorii dispozitivelor ✗ System Information – acces la informaţii privind sistemulDragoş Acostăchioaie - http://www.unixinside.org
  33. 33. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt în viitor ✗ este în curs de dezvoltare Qt versiunea 5 (a fost lansată versiunea alpha) ✗ noutăţi principale: ✗ simplificarea (unificarea) arhitecturii generale a sistemului Qt ✗ îmbunătăţirea portabilităţii Qt ✗ compatibilitate la nivel binar şi sursă cu Qt 4 ✗ se va pune accent cu prioritate pe dispozitive mobile/embedded ✗ se va pune accent pe dezvoltarea capabilităţilor grafice 2D şi 3D ale Qt (Qt Quick 2, Qt 3D, Qt Graphical Effects) ✗ dezvoltarea QML, accentul va fi pus pe JavaScript (Qt JS V8, Qt JSON DB, Qt WebKit 2) şi QML ✗ conectivitate şi cu alte limbaje decât QML, C++ şi JavaScriptDragoş Acostăchioaie - http://www.unixinside.org
  34. 34. Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012 Qt. În loc de concluzie Qt – soluţie completă desktop, mobile, embeddedDragoş Acostăchioaie - http://www.unixinside.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×