Qt

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 22. maj 2018; checks kræver 49 redigeringer .
Qt

Snapshot af Qt Creator IDE version 6.0.2
Type rammer
Forfatter Haavard Nord [d] [1]og Eirik Chambe-Eng [d] [1]
Udviklere

Trolltech (1991-2008)

Nokia (2008-2011)

Qt Project (2011 - ?)

Digia (2012-2014)

The Qt Company (2014 - i dag)
Skrevet i C++ [2]
Operativ system GNU/Linux [3] , Microsoft Windows [3] , macOS [3] , BSD [3] , Android [3] og iOS [3]
Første udgave 20. maj 1995
nyeste version
Læsbare filformater Qt-meddelelse [d] , Qt-brugergrænseflade [d] , Qt-oversættelseskildefil [d] , Qt Assistant- dokumentationsprofil [d] , Qt Assistant-indholdsfil [d] , Qt Resource Collection [d] og Qt Jambi-brugergrænseflade [d ] ]
Genererede filformater Qt-meddelelse [d] , Qt-brugergrænseflade [d] , Qt-oversættelseskildefil [d] , Qt Assistant- dokumentationsprofil [d] , Qt Assistant-indholdsfil [d] , Qt Resource Collection [d] og Qt Jambi-brugergrænseflade [d ] ]
Licens LGPL-3.0 [d] [3][5],GNU GPL 2[3]ogGNU GPL 3[3]
Internet side qt.io
 Mediefiler på Wikimedia Commons

Qt ( IPA [ ˈ k j u ː t ], udtales ( kyut ) som "sød" [6] eller uformelt QT (q-ti, ku-te, kyu-te) er en ramme til udvikling af software på tværs af platforme i C ++ programmeringssprog Der er biblioteker for mange programmeringssprog, som giver dig mulighed for at drage fordel af Qt: Python  - PyQt , PySide , Ruby  - QtRuby [7] , Java  - Qt Jambi [8] , PHP  - PHP-Qt og andre.

Siden starten i 1996 har biblioteket dannet grundlag for mange softwareprojekter. Derudover er Qt grundlaget for det populære KDE-skrivebordsmiljø inkluderet i mange Linux-distributioner .

Funktioner og sammensætning

Qt giver dig mulighed for at køre software skrevet med det på de fleste moderne operativsystemer ved blot at kompilere programmet for hvert system uden at ændre kildekoden . Indeholder alle de vigtigste klasser , der kan være nødvendige i udviklingen af ​​applikationssoftware , lige fra grafiske grænsefladeelementer til klasser til at arbejde med netværket , databaser og XML . Det er fuldt objektorienteret, kan udvides og understøtter komponentprogrammeringsteknikker.

Et karakteristisk træk er brugen af ​​en meta-objekt compiler - et foreløbigt kildekodebehandlingssystem. Udvidelse af muligheder leveres af et system af plug-ins, der kan placeres direkte i det visuelle editorpanel. Der er også mulighed for at udvide den velkendte funktionalitet af widgets , der er forbundet med at placere dem på skærmen, vise, gentegne, når vinduet ændres.

Den leveres med et visuelt udviklingsmiljø til den grafiske grænseflade Qt Designer , som giver dig mulighed for at oprette dialoger og formularer i WYSIWYG -tilstand . Qt-distributionen inkluderer Qt Linguist  , et grafisk hjælpeprogram, der forenkler lokalisering og oversættelse af et program til mange sprog; og Qt Assistant  , et Qt-hjælpesystem, der gør det nemmere at arbejde med biblioteksdokumentationen, og som også giver dig mulighed for at skabe hjælp på tværs af platforme til software udviklet baseret på Qt. Fra og med version 4.5.0 er Qt Creator - udviklingsmiljøet inkluderet , som inkluderer en kodeeditor , hjælp, Qt Designer grafiske værktøjer og muligheden for at fejlsøge applikationer. Qt Creator kan bruge GCC eller Microsoft VC++ som compiler og GDB som debugger. For Windows-versioner leveres biblioteket med en compiler, MinGW- header og objektfiler .

Der er versioner af biblioteket til Microsoft Windows , UNIX - klassesystemer med X11 -grafik , Android , iOS , Mac OS X , Microsoft Windows CE , QNX [9] , indlejrede Linux-systemer og S60 -platformen . Portering til Windows Phone og Windows RT er i gang [10] [11] . Porting til Haiku og Tizen er også i gang .

I nogen tid blev biblioteket også distribueret i Qt/Embedded-versionen, beregnet til brug på indlejrede og mobile enheder, men siden midten af ​​2000'erne har det været adskilt i et selvstændigt produkt Qtopia .

Fra version 4.5 distribueres Qt under tre licenser:

Kildekoden, som er den samme for alle licensmuligheder, er frit tilgængelig i Git - lageret på Github . Ud over selve Qt-kildekoden er der også lagre af relaterede biblioteker udviklet af forfatterne af biblioteket og fællesskabet.

Før version 4.0.0 blev kun Qt/Mac, Qt/X11, Qt/Embedded distribueret under en gratis licens, men fra 4.0.0 (frigivet i slutningen af ​​juni 2005 ) blev Qt Software "frigivet" og Qt /Windows. Samtidig var der tredjeparts gratis versioner af Qt / Windows tidligere end 4.0.0, lavet på basis af Qt / X11.

Understøttede platforme

Qt kører på en lang række forskellige platforme; følgende er officielt understøttet:

Platform Beskrivelse
Linux/Unix
X11 Qt til X-vinduehåndteringen ( Linux , FreeBSD , HP-UX, Solaris, AIX osv.). [12]
Wayland Qt for Wayland . [13] Qt-applikationer kan skifte mellem grafiske backends som X og Wayland ved opstart ved at tilføje kommandolinjeindstillingen -platform. [14] [15] Dette gør det muligt for applikationer at migrere lydløst fra X11 til Wayland.
Indlejrede Linux-systemer Qt for Embedded Systems: PDA'er , Smartphones osv. [16] Findes i flere platforme, afhængigt af gengivelsesteknologien. DirectFB , LinuxFB og EGLFS ( EGL fuld skærm).
Android Qt til Android [17] tidligere kendt som Necessitas. [atten]
Apple platforme
OS X Qt til Apple OS X ; understøtter kakaoapplikationer . [19]
iOS Qt til iOS -platforme ( iPhone , iPad ). [tyve]
Microsoft platforme
Windows Qt til Microsoft Windows XP , Vista , 7 , [21] 8 og 10 . [22]
Windows CE Qt til Windows CE 6 og Windows Embedded Compact 7 . [23]
Windows RT Understøttelse af WinRT- baserede applikationer til Windows 8 og Windows Phone 8 [24] . Fra version 5.4: Windows Phone 8.1 . [25]
Andre indlejrede platforme
Integritet Qt for integritet . [26]
QNX Qt til QNX . [27]
VxWorks Qt til VxWorks . [28]

Efter at Nokia frigav Qt-kildekoden til fællesskabet på Gitorious , dukkede forskellige porte op. Der er også nogle porte, der muligvis er tilgængelige, men som ikke længere understøttes.

Komponenter

Biblioteket er opdelt i en række moduler:

Også implementeret er WoC-teknologien - widgets på lærred, ved hjælp af hvilke Plasma er implementeret i KDE 4.1. Det vil være muligt at bruge Qt-bibliotekswidgets direkte i applets. Giver et layout til widgets på en QGraphicsView med skalerbarhed og forskellige grafiske effekter.

Biblioteket bruger sit eget projektformat, kaldet en .pro-fil, som indeholder information om, hvilke filer der vil blive kompileret, hvilke stier der skal søges efter header-filer og meget anden information. Efterfølgende, ved at bruge qmake -værktøjet , bruges de til at lave en make-fil til compilerens make-hjælpeprogram. Det er også muligt at arbejde ved hjælp af integratorer med Microsoft Visual Studio 2003/2005/2008/2010. Integration i Eclipse har været udfaset siden 2010.

Java- udviklere kan bruge Qt ved at bruge Qt Jambi- frameworket fra samme leverandør (officielt siden 2009 har Qt Software stoppet udviklingen af ​​dette framework).

Dokumentation

En af fordelene ved Qt-rammen er den detaljerede dokumentation [30] [31] ledsaget af en lang række eksempler. Eksemplernes kildekode indeholder detaljerede kommentarer og beskrivelser, hvilket også gør det nemmere at lære Qt.

Brug

Qt bruges i Autodesk Maya , [32] [33] , Skype , Telegram , VLC Media Player [34] , VirtualBox , Mathematica [35] , European Space Agency [36] , DreamWorks [37] [38] , Google , HP [ 39] , Lucasfilm [40] , Panasonic [41] , Philips [42] , Samsung [43] , Siemens [44] , Volvo [45] og Walt Disney Animation Studios , CAO [46] , Google Earth , CherryPlayer medieafspiller .

Derudover er KDE -skrivebordsmiljøet , MeeGo mobile OS GUI og Qt Creator  , et Qt-udviklingsmiljø, baseret på Qt;

Meta-objekt system

Meta-objektsystemet  er en del af kernestrukturen til at understøtte C++-funktioner såsom signaler og slots til realtidskommunikation mellem objekter og systemets dynamiske egenskaber.

Meta-objektsystemet indeholder: en klasse QObject, en makro Q_OBJECTog et hjælpeprogram moc(metaobjekt-kompiler). QObject er basisklassen for alle Qt-klasser. Makroen Q_OBJECTbruges til at aktivere metaobjektfunktioner i klasser og fungerer på kompileringstidspunktet som en præprocessor, der konverterer makroapplikationer til C++ kildekode.

Noter

  1. 1 2 https://my.safaribooksonline.com/0131872494/pref04
  2. Qt Open Source-projektet på Open Hub: Languages-side - 2006.
  3. 1 2 3 4 5 6 7 8 9 Gratis softwarekatalog
  4. https://www.qt.io/blog/qt-6.4-released
  5. http://trolltech.com/company/newsroom/announcements/press.2008-01-18.1601592972
  6. Interview med Trolltechs Eirik Eng og Matthias Ettrich  (engelsk)  (link ikke tilgængelig) (12. april 2004). Dato for adgang: 16. december 2011. Arkiveret fra originalen 3. februar 2012.
  7. アーカイブされたコピー(utilgængeligt link) . Hentet 3. august 2007. Arkiveret fra originalen 9. august 2007. 
  8. http://www.qtsoftware.com/products/qt/jambi/  (downlink)
  9. Qt framework for QNX Arkiveret 2. november 2011 på Wayback Machine 
  10. Skift I4352629a: Windows RT og Windows Phone foreløbig support Arkiveret 23. oktober 2013 på Wayback Machine 
  11. Qts WinRT-port og dens C++/CX-brug Arkiveret 29. oktober 2013.  (Engelsk)
  12. Qt Wiki - Understøttelse af Linux/X11 . Qt Project (12. august 2011). Hentet 21. august 2013. Arkiveret fra originalen 1. maj 2015.
  13. Jørgen Lind. Multi-proces fyrtårn . Qt Project (18. marts 2011). Hentet 21. august 2013. Arkiveret fra originalen 18. juni 2015.
  14. Kom godt i gang med Lighthouse . Hentet 25. november 2011. Arkiveret fra originalen 27. april 2015.
  15. Kristian Hogsberg. Tilføj wayland lighthouse plugin (utilgængeligt link) (25. januar 2011). Arkiveret fra originalen den 3. februar 2016. 
  16. Qt Wiki - Support for Embedded Linux . Qt Project (12. august 2011). Hentet 10. april 2015. Arkiveret fra originalen 1. maj 2015.
  17. Nye funktioner i Qt 5.1 - Understøttelse af nye platforme . Digia (3. juli 2013). Hentet 10. april 2015. Arkiveret fra originalen 23. april 2015.
  18. Necessitas-projekt (downlink) . Hentet 10. april 2015. Arkiveret fra originalen 20. februar 2016. 
  19. Qt Wiki - Understøttelse af OS X. Qt Project (14. august 2011). Hentet 21. august 2013. Arkiveret fra originalen 30. april 2015.
  20. Understøttede platforme . Hentet 1. februar 2014. Arkiveret fra originalen 26. december 2014.
  21. Qt Wiki - Understøttelse af Windows . Qt Project (11. august 2011). Hentet 11. august 2013. Arkiveret fra originalen 30. april 2015.
  22. Windows 10-understøttelse i Qt . Qt Company (29. april 2015). Dato for adgang: 28. januar 2016. Arkiveret fra originalen 19. januar 2016.
  23. Bjørn Breitmeyer. Status for WinCE Support i Qt5 . KDAB (21. august 2013). Hentet 21. august 2013. Arkiveret fra originalen 18. juni 2015.
  24. Qt for WinRT . Qt projekt . Hentet 9. september 2014. Arkiveret fra originalen 14. juli 2019.
  25. Nye funktioner i Qt 5.4 - Qt Wiki . Dato for adgang: 28. februar 2016. Arkiveret fra originalen 29. februar 2016.
  26. Qt Produktsider, Understøttede platforme . Qt - Product - Qt Framework . Qt Company. Hentet 21. november 2014. Arkiveret fra originalen 20. november 2014.
  27. Qt Blog. Qt Commercial understøtter formelt QNX | Qt Blog (link ikke tilgængeligt) . blog.qt.digia.com. Hentet 19. marts 2013. Arkiveret fra originalen 8. oktober 2013. 
  28. Qt Blog. Qt kommerciel for VxWorks | Qt Blog (link ikke tilgængeligt) . blog.qt.digia.com. Hentet 19. marts 2013. Arkiveret fra originalen 19. april 2014. 
  29. QtWebEngine/ChromiumVersions - Qt Wiki . wiki.qt.io. _ Hentet: 24. august 2022.
  30. Jono Bacon. Anmeldelser : Qt  . Mactech (2004). Dato for adgang: 16. september 2010. Arkiveret fra originalen 23. august 2011.
  31. Online referencedokumentation  (eng.)  (utilgængeligt link) . Nokia . Dato for adgang: 16. september 2010. Arkiveret fra originalen 23. august 2011.
  32. Qt i Autodesk (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  33. Qt i visuelle effekter (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  34. Qt i VideoLan Player (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  35. Qt leverede avanceret, cross-platform C++ GUI til Mathematicas udviklingsteam (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  36. Qt i European Space Agency (utilgængeligt link) . Arkiveret fra originalen den 3. februar 2012. 
  37. Behind the Scenes at DreamWorks Animation: Lav de apps, der laver filmene (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  38. UI- og systemdesignudfordringer for NxG Lighting Tool (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  39. Udvikling af innovative desktop- og indlejrede HP-produkter med Qt (link ikke tilgængeligt) . Arkiveret fra originalen den 3. februar 2012. 
  40. Lucasfilm Entertainment Company Ltd. (utilgængeligt link) . Arkiveret fra originalen den 3. februar 2012. 
  41. Panasonic vælger Qt til HD-videosystem (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  42. Qt i IP-kommunikation (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  43. Qt i hjemmemedier (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  44. Qt hjalp Siemens med at levere en C++ udviklingsplatform til fremstilling af software GUI'er (downlink) . Arkiveret fra originalen den 3. februar 2012. 
  45. Volvo Mobility Systems (utilgængeligt link) . Arkiveret fra originalen den 3. februar 2012. 
  46. Qt hjalp Walt Disney med at reducere udviklingstiden brugt på sin applikation til produktion af spillefilm på tværs af platforme (downlink) . Arkiveret fra originalen den 3. februar 2012. 

Litteratur

Links