Mediul de programare multiplatforma Qt

34
Mediul de programare multiplatformă Qt Dragoş Acostăchioaie http://www.unixinside.org [email protected] Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

description

O prezentare a mediului de programare multiplatforma Qt

Transcript of Mediul de programare multiplatforma Qt

Page 1: Mediul de programare multiplatforma Qt

Mediul de programaremultiplatformă Qt

Dragoş Acostăchioaiehttp://[email protected]

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 2: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 Phyton

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 3: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 deresurse

✗ utilizează sistemul grafic al sistemului de operare pe care rulează; astfel, aplicaţiile auaspectul şi comportamentul nativ al sistemului gazdă

✗ trecerea de la un sistem de operare la altul nu necesită modificări ale codului sursă, cidoar compilarea acestuia pe fiecare platformă în parte (dacă nu s-au folositfunctionalităţi/biblioteci specifice)

✗ asigură codul sursă împotriva schimbărilor viitoare ale platformelor gazdă (la nivelsursă sau binar; dezvoltatorii se pot astfel concentra pe dezvoltarea aplicaţiilor, nu pemodificările API-ului

✗ pot fi atinse mai uşor pieţe multiple (dedicate diferitelor sisteme de operare)

✗ costuri mai mici de mentenanţă a codului

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 4: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Biblioteca QtBiblioteca 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 ECMA

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 5: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 Eclipse

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 6: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Qt Quick

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 } }

Page 7: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Qt. Licenţe de utilizare

Qt CommercialDeveloper License

GNU LGPL v2.1 GNU GPL v3.0

Cost de licenţiere Taxă de licenţiere (de la ~3000 $)

Fără costuri Fără costuri

Trebuie furnizate modificările codului sursă Qt

Nu Trebuie furnizat codul sursă

Trebuie furnizat codul sursă

Pot fi realizate aplicaţii proprietare

Da Da, în concordanţă cu termenii LGPL

Nu, aplicaţiile sunt sub licenţă GPL şi trebuie furnizat codul sursă

Sunt furnizate actualizări

Da, sunt trimise imediat notificări celor care au contract de suport

Da Da

Este furnizat suport tehnic

Da, celor cu contract încheiat

Disponibil contra cost

Disponibil contra cost

Taxă pentru executabile

Pentru unele platforme embedded

Nu Nu

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 8: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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, Sharp

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 9: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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)

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 10: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

✗ 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ţă

Scurt istoric

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 11: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Biblioteca Qt. Module

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Biblioteca Qt are la bază o structură modulară:✗ QtCore✗ QtGui✗ QtMultimedia✗ QtNetwork✗ QtOpenGL✗ QtScript✗ QtSql✗ QtXml✗ QtWebKit

✗ QtOpenGL✗ QtOpenVG✗ QtXmlPatterns✗ Phonon

Page 12: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtCore

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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.

Page 13: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Qt. Semnale şi sloturi

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 semnal

Page 14: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Qt. Semnale şi sloturi

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 15: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtGui

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 multiple

Page 16: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtGui

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 limbifără recompilarea coduluisursă

✗ suportă OpenVG – APIpentru grafică vectorialăaccelerată hardware,regăsită pe numeroasedispozitive embedded

Page 17: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulele QtMultimedia şi Phonon

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

● 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.)

Page 18: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulele QtNetwork şi QtDBus

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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)

Page 19: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtOpenGL

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 OpenGL

Page 20: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtScript

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 acestora

Page 21: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtSql

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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-Controller

Page 22: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Arhitectura Model-View-Controller

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 programatorului

Page 23: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulele QtXml şi QtXmlPatterns

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 XML

Page 24: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Modulul QtWebKit

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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 Qt

Page 25: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Qt Installer

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

✗ 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ţiei

Page 26: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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ţiilor

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 27: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 multiple

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 28: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 definidimensiunea şi poziţiawidget-urilor

✗ permite previzualizarea aspectului form-urilor

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 29: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 Perforce

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 30: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 potfi 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 mobil

Dragoş Acostăchioaie - http://www.unixinside.org

Mediul integrat de dezvoltare Qt Creator

Dragoş Acostăchioaie - http://www.unixinside.org

Mediul integrat de dezvoltare Qt Creator

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 31: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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)

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 32: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 sistemul

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 33: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

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 JavaScript

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012

Page 34: Mediul de programare multiplatforma Qt

Dragoş Acostăchioaie - http://www.unixinside.org

Qt. În loc de concluzie

Qt – soluţie completădesktop, mobile, embedded

Şcoala de vară “Informatică la castel”, Macea, 27 aug.-1 sep. 2012