Qt

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 22 mai 2018; verificările necesită 49 ​​de modificări .
Qt

Instantaneu al Qt Creator IDE versiunea 6.0.2
Tip de cadru
Autor Haavard Nord [d] [1]și Eirik Chambe-Eng [d] [1]
Dezvoltatori

Trolltech (1991–2008)

Nokia (2008–2011)

Proiectul Qt (2011 -?)

Digia (2012–2014)

The Qt Company (2014 - prezent)
Scris in C++ [2]
Sistem de operare GNU/Linux [3] , Microsoft Windows [3] , macOS [3] , BSD [3] , Android [3] și iOS [3]
Prima editie 20 mai 1995
ultima versiune
Formate de fișiere care pot fi citite Qt Message [d] , Qt User Interface [d] , Qt Translation fișier sursă [d] , Qt Assistant Documentation Profile [d] , Qt Assistant Content File [d] , Qt Resource Collection [d] și Qt Jambi User Interface [d] ] ]
Formate de fișiere generate Qt Message [d] , Qt User Interface [d] , Qt Translation fișier sursă [d] , Qt Assistant Documentation Profile [d] , Qt Assistant Content File [d] , Qt Resource Collection [d] și Qt Jambi User Interface [d] ] ]
Licență LGPL-3.0 [d] [3][5],GNU GPL 2[3]șiGNU GPL 3[3]
Site-ul web qt.io
 Fișiere media la Wikimedia Commons

Qt ( IPA [ ˈ k j u ː t ], pronunțat ( kyut ) ca „drăguț” [6] sau informal QT (q-ti, ku-te, kyu-te) este un cadru pentru dezvoltarea de software multiplatformă în Limbajul de programare C++ Există biblioteci pentru multe limbaje de programare care vă permit să profitați de Qt: Python  - PyQt , PySide , Ruby  - QtRuby [7] , Java  - Qt Jambi [8] , PHP  - PHP-Qt și alții.

De la înființarea sa în 1996, biblioteca a stat la baza multor proiecte software. În plus, Qt este fundamentul popularului mediu desktop KDE inclus în multe distribuții Linux .

Funcții și compoziție

Qt vă permite să rulați software scris cu acesta pe majoritatea sistemelor de operare moderne prin simpla compilare a programului pentru fiecare sistem fără a schimba codul sursă . Include toate clasele principale care pot fi necesare în dezvoltarea aplicaţiilor software , variind de la elemente de interfaţă grafică până la clase pentru lucrul cu reţeaua , bazele de date şi XML . Este complet orientat pe obiecte, extensibil și acceptă tehnici de programare a componentelor.

O caracteristică distinctivă este utilizarea unui compilator meta-obiect - un sistem preliminar de procesare a codului sursă. Extinderea capabilităților este asigurată de un sistem de plug-in-uri care pot fi plasate direct în panoul editorului vizual. Există, de asemenea, posibilitatea extinderii funcționalității familiare a widget -urilor asociate cu plasarea acestora pe ecran, afișarea, redesenarea atunci când fereastra este redimensionată.

Vine cu un mediu de dezvoltare vizuală pentru interfața grafică Qt Designer , care vă permite să creați dialoguri și formulare în modul WYSIWYG . Distribuția Qt include Qt Linguist  , un utilitar grafic care simplifică localizarea și traducerea unui program în mai multe limbi; și Qt Assistant  , un sistem de ajutor Qt care facilitează lucrul cu documentația bibliotecii și, de asemenea, vă permite să creați ajutor pe mai multe platforme pentru software dezvoltat pe baza Qt. Începând cu versiunea 4.5.0, este inclus mediul de dezvoltare Qt Creator , care include un editor de cod , ajutor, instrumente grafice Qt Designer și capacitatea de a depana aplicațiile. Qt Creator poate folosi GCC sau Microsoft VC++ ca compilator și GDB ca depanator. Pentru versiunile Windows, biblioteca vine cu un compilator, antet MinGW și fișiere obiect .

Există versiuni ale bibliotecii pentru Microsoft Windows , sisteme de clasă UNIX cu grafică X11 , Android , iOS , Mac OS X , Microsoft Windows CE , QNX [9] , sisteme Linux încorporate și platforma S60 . Portarea pe Windows Phone și Windows RT este în curs [10] [11] . Portarea către Haiku și Tizen este, de asemenea, în curs de desfășurare .

De ceva timp, biblioteca a fost distribuită și în versiunea Qt/Embedded, destinată utilizării pe dispozitive încorporate și mobile, dar de la mijlocul anilor 2000 a fost separată într-un produs independent Qtopia .

Începând cu versiunea 4.5 Qt este distribuit sub trei licențe:

Codul sursă, care este același pentru toate opțiunile de licență, este disponibil gratuit în depozitul Git situat pe Github . Pe lângă codul sursă Qt în sine, există și depozite de biblioteci conexe dezvoltate de autorii bibliotecii și de comunitate.

Înainte de versiunea 4.0.0, numai Qt/Mac, Qt/X11, Qt/Embedded erau distribuite sub o licență gratuită, dar începând cu versiunea 4.0.0 (lansată la sfârșitul lunii iunie 2005 ), Qt Software a fost „eliberat” și Qt /Windows. În același timp, au existat versiuni gratuite ale terților Qt / Windows anterioare 4.0.0, realizate pe baza Qt / X11.

Platforme acceptate

Qt rulează pe o mare varietate de platforme; sunt susținute oficial următoarele:

Platformă Descriere
Linux/Unix
X11 Qt pentru managerul de ferestre X ( Linux , FreeBSD , HP-UX, Solaris, AIX etc.). [12]
Wayland Qt pentru Wayland . [13] Aplicațiile Qt pot comuta între backend-uri grafice precum X și Wayland în momentul pornirii, adăugând opțiunea de linie de comandă -platform. [14] [15] Acest lucru permite aplicațiilor să migreze silențios de la X11 la Wayland.
Sisteme Linux încorporate Qt pentru Sisteme Embedded: PDA-uri , Smartphone -uri etc. [16] Există pe mai multe platforme, în funcție de tehnologia de randare. DirectFB , LinuxFB și EGLFS ( EGL Full Screen).
Android Qt pentru Android [17] cunoscut anterior ca Necessitas. [optsprezece]
Platformele Apple
OS X Qt pentru Apple OS X ; acceptă aplicații de cacao . [19]
iOS Qt pentru platformele iOS ( iPhone , iPad ). [douăzeci]
platformele Microsoft
Windows Qt pentru Microsoft Windows XP , Vista , 7 , [21] 8 și 10 . [22]
Windows CE Qt pentru Windows CE 6 și Windows Embedded Compact 7 . [23]
Windows RT Suport pentru aplicații bazate pe WinRT pentru Windows 8 și Windows Phone 8 [24] . Din versiunea 5.4: Windows Phone 8.1 . [25]
Alte platforme încorporate
Integritate Qt pentru integritate . [26]
QNX Qt pentru QNX . [27]
VxWorks Qt pentru VxWorks . [28]

După ce Nokia a lansat codul sursă Qt către comunitatea de pe Gitorious , au apărut diverse porturi. Există, de asemenea, unele porturi care pot fi disponibile, dar nu mai sunt acceptate.

Componente

Biblioteca este împărțită în mai multe module:

De asemenea, este implementată tehnologia WoC - widget-uri pe pânză, cu ajutorul căreia Plasma este implementată în KDE 4.1.Va fi posibilă utilizarea widget-urilor bibliotecii Qt direct în applet-uri. Oferă un aspect pentru widget-uri pe un QGraphicsView cu scalabilitate și diverse efecte grafice.

Biblioteca folosește propriul format de proiect, numit fișier .pro, care conține informații despre fișierele care vor fi compilate, căile de căutare pentru fișierele antet și multe alte informații. Ulterior, folosind utilitarul qmake , acestea sunt folosite pentru a crea un fișier make pentru utilitarul make al compilatorului. De asemenea, este posibil să lucrați cu ajutorul integratorilor cu Microsoft Visual Studio 2003/2005/2008/2010. Integrarea în Eclipse a fost retrasă din 2010.

Dezvoltatorii Java pot folosi Qt folosind cadrul Qt Jambi de la același furnizor (oficial din 2009, Qt Software a oprit dezvoltarea acestui cadru).

Documentație

Unul dintre avantajele framework-ului Qt este documentația detaliată [30] [31] însoțită de un număr mare de exemple. Codul sursă al exemplelor conține comentarii și descrieri detaliate, ceea ce face, de asemenea, mai ușor de învățat Qt.

Utilizare

Qt este utilizat în Autodesk Maya , [32] [33] , Skype , Telegram , VLC Media Player [34] , VirtualBox , Mathematica [35] , Agenția Spațială Europeană [36] , DreamWorks [37] [38] , Google , HP [ 39] , Lucasfilm [40] , Panasonic [41] , Philips [42] , Samsung [43] , Siemens [44] , Volvo [45] și Walt Disney Animation Studios , CAO [46] , Google Earth , CherryPlayer media player .

În plus, mediul desktop KDE , MeeGo mobile OS GUI și Qt Creator  , un mediu de dezvoltare Qt, se bazează pe Qt;

Sistem meta-obiect

Sistemul meta-obiect  face parte din cadrul de bază pentru suportarea caracteristicilor C++, cum ar fi semnalele și sloturile pentru comunicarea în timp real între obiecte și proprietățile dinamice ale sistemului.

Sistemul meta-obiect conține: o clasă QObject, o macro Q_OBJECTși un utilitar moc(compilator meta-obiect). QObject este clasa de bază pentru toate clasele Qt. Macro-ul Q_OBJECTeste folosit pentru a activa funcțiile meta-obiect în clase și, la momentul compilării, acționează ca un preprocesor care convertește aplicațiile macro în cod sursă C++.

Note

  1. 1 2 https://my.safaribooksonline.com/0131872494/pref04
  2. Proiectul qt Open Source pe Open Hub: Pagina de limbi - 2006.
  3. 1 2 3 4 5 6 7 8 9 Director de software gratuit
  4. https://www.qt.io/blog/qt-6.4-released
  5. http://trolltech.com/company/newsroom/announcements/press.2008-01-18.1601592972
  6. Interviu cu Eirik Eng și Matthias Ettrich de la Trolltech  (engleză)  (link nu este disponibil) (12 aprilie 2004). Data accesului: 16 decembrie 2011. Arhivat din original la 3 februarie 2012.
  7. アーカイブされたコピー(link indisponibil) . Preluat la 3 august 2007. Arhivat din original la 9 august 2007. 
  8. http://www.qtsoftware.com/products/qt/jambi/  (downlink)
  9. Framework Qt pentru QNX Arhivat 2 noiembrie 2011 la Wayback Machine 
  10. Modificare I4352629a: suport preliminar pentru Windows RT și Windows Phone Arhivat 23 octombrie 2013 la Wayback Machine 
  11. Portul WinRT al lui Qt și utilizarea sa C++/CX Arhivat 29 octombrie 2013.  (Engleză)
  12. Qt Wiki - Suport pentru Linux/X11 . Proiectul Qt (12 august 2011). Preluat la 21 august 2013. Arhivat din original la 1 mai 2015.
  13. Jørgen Lind. Farul cu mai multe procese . Proiectul Qt (18 martie 2011). Preluat la 21 august 2013. Arhivat din original la 18 iunie 2015.
  14. Noțiuni introductive despre Lighthouse . Consultat la 25 noiembrie 2011. Arhivat din original la 27 aprilie 2015.
  15. Kristian Hogsberg. Adăugați pluginul Wayland Lighthouse (link indisponibil) (25 ianuarie 2011). Arhivat din original pe 3 februarie 2016. 
  16. Qt Wiki - Suport pentru Linux încorporat . Proiectul Qt (12 august 2011). Consultat la 10 aprilie 2015. Arhivat din original la 1 mai 2015.
  17. Caracteristici noi în Qt 5.1 - Suport pentru platforme noi . Digia (3 iulie 2013). Consultat la 10 aprilie 2015. Arhivat din original pe 23 aprilie 2015.
  18. Proiect Necessitas (downlink) . Consultat la 10 aprilie 2015. Arhivat din original pe 20 februarie 2016. 
  19. Qt Wiki - Suport pentru OS X. Proiectul Qt (14 august 2011). Preluat la 21 august 2013. Arhivat din original la 30 aprilie 2015.
  20. Platforme acceptate . Consultat la 1 februarie 2014. Arhivat din original pe 26 decembrie 2014.
  21. Qt Wiki - Suport pentru Windows . Proiectul Qt (11 august 2011). Preluat la 11 august 2013. Arhivat din original la 30 aprilie 2015.
  22. Asistență Windows 10 în Qt . Compania Qt (29 aprilie 2015). Data accesului: 28 ianuarie 2016. Arhivat din original la 19 ianuarie 2016.
  23. Bjoern Breitmeyer. Starea suportului WinCE în Qt5 . KDAB (21 august 2013). Preluat la 21 august 2013. Arhivat din original la 18 iunie 2015.
  24. Qt pentru WinRT . Proiectul Qt . Preluat la 9 septembrie 2014. Arhivat din original la 14 iulie 2019.
  25. Caracteristici noi în Qt 5.4 - Qt Wiki . Data accesului: 28 februarie 2016. Arhivat din original pe 29 februarie 2016.
  26. Pagini de produse Qt, Platforme acceptate . Qt - Produs - Cadrul Qt . Compania Qt. Consultat la 21 noiembrie 2014. Arhivat din original pe 20 noiembrie 2014.
  27. Qt Blog. Qt Commercial acceptă oficial QNX | Qt Blog (link nu este disponibil) . blog.qt.digia.com. Preluat la 19 martie 2013. Arhivat din original la 8 octombrie 2013. 
  28. Qt Blog. Qt Reclamă pentru VxWorks | Qt Blog (link nu este disponibil) . blog.qt.digia.com. Preluat la 19 martie 2013. Arhivat din original la 19 aprilie 2014. 
  29. QtWebEngine/ChromiumVersions - Qt Wiki . wiki.qt.io. _ Preluat: 24 august 2022.
  30. Jono Bacon. Recenzii : Qt  . Mactech (2004). Data accesului: 16 septembrie 2010. Arhivat din original la 23 august 2011.
  31. Online Reference Documentation  (ing.)  (link inaccesibil) . Nokia . Data accesului: 16 septembrie 2010. Arhivat din original la 23 august 2011.
  32. Qt în Autodesk (link descendent) . Arhivat din original pe 3 februarie 2012. 
  33. Qt în efecte vizuale (downlink) . Arhivat din original pe 3 februarie 2012. 
  34. Qt în VideoLan Player (link descendent) . Arhivat din original pe 3 februarie 2012. 
  35. Qt a furnizat GUI C++ multiplatformă avansată pentru echipa de dezvoltare Mathematica (downlink) . Arhivat din original pe 3 februarie 2012. 
  36. Qt în Agenția Spațială Europeană (link indisponibil) . Arhivat din original pe 3 februarie 2012. 
  37. În culise la DreamWorks Animation: Crearea aplicațiilor care fac filmele (link în jos) . Arhivat din original pe 3 februarie 2012. 
  38. Provocări de proiectare a interfeței de utilizare și a sistemului pentru instrumentul de iluminat NxG (link în jos) . Arhivat din original pe 3 februarie 2012. 
  39. Dezvoltarea de desktop inovatoare și de produse HP încorporate cu Qt (link nu este disponibil) . Arhivat din original pe 3 februarie 2012. 
  40. Lucasfilm Entertainment Company Ltd. (link indisponibil) . Arhivat din original pe 3 februarie 2012. 
  41. Panasonic selectează Qt pentru sistemul video HD (downlink) . Arhivat din original pe 3 februarie 2012. 
  42. Qt în Comunicații IP (downlink) . Arhivat din original pe 3 februarie 2012. 
  43. Qt în Home Media (link descendent) . Arhivat din original pe 3 februarie 2012. 
  44. Qt a ajutat Siemens să furnizeze o platformă de dezvoltare C++ pentru producția de interfețe grafice software (downlink) . Arhivat din original pe 3 februarie 2012. 
  45. Volvo Mobility Systems (link inaccesibil) . Arhivat din original pe 3 februarie 2012. 
  46. Qt l-a ajutat pe Walt Disney să reducă timpul de dezvoltare petrecut pentru aplicația sa de producție de lungmetraj multiplatformă (downlink) . Arhivat din original pe 3 februarie 2012. 

Literatură

Link -uri