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:
- Qt Commercial - til udvikling af software med en proprietær licens, der tillader modifikation af selve Qt uden at afsløre ændringerne;
- GNU GPL - til åben kildekode-udvikling distribueret under betingelserne i GNU GPL , såvel som til ændring af Qt;
- GNU LGPL - til udvikling af software med en proprietær licens.
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:
- QtCore - bibliotekets kerneklasser, der bruges af andre moduler;
- QtGui - GUI komponenter;
- QtWidgets - indeholder klasser til klassiske widget-baserede applikationer, modulet er adskilt fra QtGui i Qt 5;
- Qt QML - et modul til QML- understøttelse ;
- QtNetwork er et sæt klasser til netværksprogrammering. Understøttelse af forskellige protokoller på højt niveau kan variere fra version til version. Version 4.2.x indeholder klasser til at arbejde med FTP- og HTTP-protokoller . Klasser som QTcpServer, QTcpSocket for TCP og QUdpSocket for UDP er designet til at fungere med TCP/IP -protokoller;
- QtOpenGL - et sæt klasser til at arbejde med OpenGL ;
- QtSql er et sæt klasser til at arbejde med databaser ved hjælp af SQL . Hovedklasserne i dette modul i version 4.2.x: QSqlDatabase - en klasse til at give en forbindelse til databasen, for at arbejde med en specifik database, det kræver et objekt nedarvet fra QSqlDriver-klassen - en abstrakt klasse, der er implementeret for en specifik database database og kan kræve til kompilering Database SDK. For at bygge en driver til Firebird eller InterBase DBMS kræves f.eks . .h-filer og statiske linkbiblioteker, som er inkluderet i distributionssættet til dette DBMS;
- QtScript-klasser til at arbejde med Qt-scripts ;
- QtSvg - klasser til visning og arbejde med data Scalable Vector Graphics ( SVG );
- QtXml-modul til at arbejde med XML , SAX og DOM modeller understøttes ;
- QtDesigner - klasser til at oprette udvidelser til deres egne widgets;
- QtUiTools - klasser til behandling i en Qt Designer-formularapplikation;
- QtAssistant - hjælpesystem;
- Qt3Support - et modul med de klasser, der er nødvendige for kompatibilitet med Qt-biblioteket version 3.x.x;
- QtTest-klasser til understøttelse af enhedstestning ;
- QtWebKit er et WebKit-modul integreret i Qt og tilgængeligt gennem dets klasser. (Forældet fra Qt 5.6);
- QtWebEngine er et Chromium-modul integreret i Qt og tilgængeligt gennem dets klasser. I QT 6.3.0 er kromversionen 94.0 [29]
- QtXmlPatterns - modul til XQuery 1.0 og XPath 2.0 support;
- Phonon - et modul til at understøtte afspilning og optagelse af video og lyd, både lokalt og fra enheder og over netværket (startende fra Qt 5, erstattet af QtMultimedia);
- QtMultimedia - et modul til at understøtte afspilning og optagelse af video og lyd, både lokalt og fra enheder og over netværket;
- QtCLucene - modul til fuld tekstsøgningssupport , brugt i den nye version af Assistant i Qt 4.4;
- ActiveQt er et modul til at arbejde med ActiveX- og COM - teknologier for Qt-udviklere under Windows .
- QtDeclarative er et modul, der giver en deklarativ ramme til at skabe dynamiske, brugerdefinerede brugergrænseflader.
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 2 https://my.safaribooksonline.com/0131872494/pref04
- ↑ Qt Open Source-projektet på Open Hub: Languages-side - 2006.
- ↑ 1 2 3 4 5 6 7 8 9 Gratis softwarekatalog
- ↑ https://www.qt.io/blog/qt-6.4-released
- ↑ http://trolltech.com/company/newsroom/announcements/press.2008-01-18.1601592972
- ↑ 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.
- ↑ アーカイブされたコピー(utilgængeligt link) . Hentet 3. august 2007. Arkiveret fra originalen 9. august 2007. (ubestemt)
- ↑ http://www.qtsoftware.com/products/qt/jambi/ (downlink)
- ↑ Qt framework for QNX Arkiveret 2. november 2011 på Wayback Machine
- ↑ Skift I4352629a: Windows RT og Windows Phone foreløbig support Arkiveret 23. oktober 2013 på Wayback Machine
- ↑ Qts WinRT-port og dens C++/CX-brug Arkiveret 29. oktober 2013. (Engelsk)
- ↑ Qt Wiki - Understøttelse af Linux/X11 . Qt Project (12. august 2011). Hentet 21. august 2013. Arkiveret fra originalen 1. maj 2015. (ubestemt)
- ↑ Jørgen Lind. Multi-proces fyrtårn . Qt Project (18. marts 2011). Hentet 21. august 2013. Arkiveret fra originalen 18. juni 2015. (ubestemt)
- ↑ Kom godt i gang med Lighthouse . Hentet 25. november 2011. Arkiveret fra originalen 27. april 2015. (ubestemt)
- ↑ Kristian Hogsberg. Tilføj wayland lighthouse plugin (utilgængeligt link) (25. januar 2011). Arkiveret fra originalen den 3. februar 2016. (ubestemt)
- ↑ Qt Wiki - Support for Embedded Linux . Qt Project (12. august 2011). Hentet 10. april 2015. Arkiveret fra originalen 1. maj 2015. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ Necessitas-projekt (downlink) . Hentet 10. april 2015. Arkiveret fra originalen 20. februar 2016. (ubestemt)
- ↑ Qt Wiki - Understøttelse af OS X. Qt Project (14. august 2011). Hentet 21. august 2013. Arkiveret fra originalen 30. april 2015. (ubestemt)
- ↑ Understøttede platforme . Hentet 1. februar 2014. Arkiveret fra originalen 26. december 2014. (ubestemt)
- ↑ Qt Wiki - Understøttelse af Windows . Qt Project (11. august 2011). Hentet 11. august 2013. Arkiveret fra originalen 30. april 2015. (ubestemt)
- ↑ Windows 10-understøttelse i Qt . Qt Company (29. april 2015). Dato for adgang: 28. januar 2016. Arkiveret fra originalen 19. januar 2016. (ubestemt)
- ↑ Bjørn Breitmeyer. Status for WinCE Support i Qt5 . KDAB (21. august 2013). Hentet 21. august 2013. Arkiveret fra originalen 18. juni 2015. (ubestemt)
- ↑ Qt for WinRT . Qt projekt . Hentet 9. september 2014. Arkiveret fra originalen 14. juli 2019. (ubestemt)
- ↑ Nye funktioner i Qt 5.4 - Qt Wiki . Dato for adgang: 28. februar 2016. Arkiveret fra originalen 29. februar 2016. (ubestemt)
- ↑ Qt Produktsider, Understøttede platforme . Qt - Product - Qt Framework . Qt Company. Hentet 21. november 2014. Arkiveret fra originalen 20. november 2014. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ QtWebEngine/ChromiumVersions - Qt Wiki . wiki.qt.io. _ Hentet: 24. august 2022. (ubestemt)
- ↑ Jono Bacon. Anmeldelser : Qt . Mactech (2004). Dato for adgang: 16. september 2010. Arkiveret fra originalen 23. august 2011.
- ↑ Online referencedokumentation (eng.) (utilgængeligt link) . Nokia . Dato for adgang: 16. september 2010. Arkiveret fra originalen 23. august 2011.
- ↑ Qt i Autodesk (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt i visuelle effekter (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt i VideoLan Player (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt leverede avanceret, cross-platform C++ GUI til Mathematicas udviklingsteam (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt i European Space Agency (utilgængeligt link) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Behind the Scenes at DreamWorks Animation: Lav de apps, der laver filmene (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ UI- og systemdesignudfordringer for NxG Lighting Tool (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Udvikling af innovative desktop- og indlejrede HP-produkter med Qt (link ikke tilgængeligt) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Lucasfilm Entertainment Company Ltd. (utilgængeligt link) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Panasonic vælger Qt til HD-videosystem (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt i IP-kommunikation (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt i hjemmemedier (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Qt hjalp Siemens med at levere en C++ udviklingsplatform til fremstilling af software GUI'er (downlink) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ Volvo Mobility Systems (utilgængeligt link) . Arkiveret fra originalen den 3. februar 2012. (ubestemt)
- ↑ 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. (ubestemt)
Litteratur
- Max Schlee. Qt 5.3 Professionel C++ programmering. - Sankt Petersborg. : BHV-Petersburg, 2015. - 928 s. — ISBN 978-5-9775-3346-1 .
- Borovsky A. Qt 4.7+ Praktisk programmering i C++. - Sankt Petersborg. : BHV-Petersburg, 2012. - 496 s. — ISBN 978-5-9775-0757-8 .
- Max Schlee. Qt 4.8 Professional C++ programmering. - Sankt Petersborg. : BHV-Petersburg, 2012. - 912 s. - ISBN 978-5-9775-0736-3 .
- Summerfield M. Qt. Professionel programmering. Udvikling af cross-platform applikationer i C++. - Sankt Petersborg. : Symbol-Plus, 2011. - 560 s. - ISBN 978-5-93286-207-0 .
- Max Schlee. Qt 4.5 Professional C++ programmering. - Sankt Petersborg. : BHV-Petersburg, 2010. - 896 s. - ISBN 978-5-9775-0398-3 .
- J. Blanchet, M. Summerfield. Qt 4: GUI-programmering i C++. 2. reviderede udgave. - M. : Kudits-press, 2008. - 736 s. - ISBN 978-5-91136-059-7 .
- Zemskov Yu.V. Qt 4 med eksempler. - Sankt Petersborg. : "BHV-Petersburg", 2008. - 608 s. - ISBN 978-5-9775-0256-6 .
- Max Schlee. Qt 4: Professionel C++ programmering. - Sankt Petersborg. : BHV-Petersburg, 2007. - 880 s. - ISBN 978-5-9775-0010-6 .
- Chebotarev A. Bibliotek Qt 4. Oprettelse af applikationer i Linux-miljøet. - M . : Dialektik , 2006. - 256 s. — ISBN 5-8459-0996-1 .
Links
Qt |
---|
Teknologi |
|
---|
Værktøjer |
|
---|
Indbindinger |
|
---|
relaterede emner |
|
---|
Værktøjssæt (sæt) af GUI-elementer |
---|
lavt niveau |
|
---|
højt niveau | Amiga OS |
|
---|
MacOS og macOS |
- Kakao
- macapp
- MacZoop
- Kraftværk
|
---|
Windows |
|
---|
UNIX , under X |
|
---|
På tværs af platforme _ | Flash-baseret |
|
---|
Baseret på XML, AJAX eller SVG |
|
---|
Baseret på Java |
|
---|
Baseret på C eller C++ |
|
---|
Baseret på Common Lisp |
|
---|
Baseret på Pascal |
|
---|
Baseret på Python |
|
---|
Baseret på Objective-C |
|
---|
|
---|
|
---|