Qt (Software) - Qt (software)
Originalautor(en) | Haavard Nord und Eirik Chambe-Eng |
---|---|
Entwickler | |
Erstveröffentlichung | 20. Mai 1995 |
Stabile Version | 6.2 LTS (30. September 2021 [±] | )
Repository | |
Geschrieben in | C++ ( C++17 ) |
Betriebssystem | Android , iOS , Linux ( eingebettet , Wayland , X11 ), macOS , Microsoft Windows , WebAssembly , ... |
Plattform | Plattformübergreifend |
Typ | Widget-Toolkit und Anwendungsframework |
Lizenz | |
Webseite | www |
Qt (ausgesprochen "niedlich") ist ein Widget-Toolkit zum Erstellen von grafischen Benutzeroberflächen sowie plattformübergreifenden Anwendungen , die auf verschiedenen Software- und Hardwareplattformen wie Linux , Windows , macOS , Android oder eingebetteten Systemen mit geringen oder keinen Änderungen an den zugrunde liegende Codebasis, während es immer noch eine native Anwendung mit nativen Fähigkeiten und Geschwindigkeit ist.
Qt wird derzeit von The Qt Company , einem börsennotierten Unternehmen, und dem Qt-Projekt unter Open-Source-Governance entwickelt , an dem einzelne Entwickler und Organisationen beteiligt sind, die an der Weiterentwicklung von Qt arbeiten. Qt ist sowohl unter kommerziellen Lizenzen als auch unter Open-Source- Lizenzen GPL 2.0, GPL 3.0 und LGPL 3.0 verfügbar .
Ziele und Fähigkeiten
Qt wird für die Entwicklung von grafischen Benutzeroberflächen (GUIs) und Multi-Plattform- Anwendungen verwendet , die auf allen wichtigen Desktop- Plattformen und den meisten mobilen oder eingebetteten Plattformen ausgeführt werden. Die meisten mit Qt erstellten GUI-Programme haben eine nativ aussehende Oberfläche, in diesem Fall wird Qt als Widget-Toolkit klassifiziert . Es können auch Nicht-GUI-Programme entwickelt werden, z. B. Befehlszeilentools und Konsolen für Server. Ein Beispiel für ein solches Nicht-GUI-Programm, das Qt verwendet, ist das Cutelyst- Web-Framework .
Qt unterstützt verschiedene Compiler, darunter den GCC C++ Compiler, die Visual Studio Suite, PHP über eine Erweiterung für PHP5 und bietet umfangreiche Internationalisierungsunterstützung . Qt stellt auch Qt Quick bereit , das eine deklarative Skriptsprache namens QML enthält , die es ermöglicht, JavaScript zur Bereitstellung der Logik zu verwenden. Mit Qt Quick wurde eine schnelle Anwendungsentwicklung für mobile Geräte möglich, während Logik weiterhin auch mit nativem Code geschrieben werden kann, um die bestmögliche Leistung zu erzielen.
Weitere Funktionen sind SQL- Datenbankzugriff, XML- Parsing, JSON- Parsing, Thread- Management und Netzwerkunterstützung.
Qt-Versionen
Die neueste Version ist Qt 6.1, die am 6. Mai 2021 veröffentlicht wurde.
Die aktuelle Long-Term Support (LTS)-Version ist Qt 5.15 LTS. Das Unternehmen Qt verschiebt Qt 5.15 in seine kommerzielle LTS-Phase, die am 5. Januar 2021 beginnt.
Qt 5.12 ist auch eine LTS-Version Die aktuelle Version ist 5.12.10.
Die erste Veröffentlichung der Qt-Software war am 20. Mai 1995.
Qt im Einsatz
Im Jahr 2017 schätzte die Qt Company eine Community von etwa 1 Million Entwicklern weltweit in über 70 Branchen.
Desktop-Benutzeroberflächen
Grafische Benutzeroberflächen und Desktop-Umgebungen , die Qt/QML als Widget-Toolkit verwenden:
- KDE Plasma , eine kostenlose Desktop-Umgebung für verschiedene Computergeräte
- Cutefish, eine Desktop-Umgebung, die auf Qt/KDE-Frameworks basiert
- DDE ( Deepin Desktop Environment) von Linux Deepin
- UKUI ( Ubuntu Kylin- Benutzeroberfläche)
- LXQt (leichte X11 Desktop-Umgebung)
- Lumina , eine Desktop-Umgebung für BSD-basiertes TrueOS
- Lomiri (ehemals Unity8 ), eine konvergente Desktop-Umgebung, die von Canonical gestartet und von Ubports verwaltet wird
- Unity 2D , eine in Qt und Qml geschriebene Desktop-Shell
- Trinity DE , ein kontinuierlich weiterentwickelter Fork auf Basis von KDE3
- NX-Desktop, eine Desktop-Shell basierend auf Plasma
- Be-shell, eine einfache Shell basierend auf KDE Frameworks
- Liquidshell, eine auf QtWidgets basierende Shell
- LiriOS, eine Workspace-Shell, die mit Qt/QML . erstellt wurde
- SDDM , ein X11- und Wayland-kompatibler Display-Manager, der in QML geschrieben ist . (Dies ist ein Display-Manager und keine Desktop-Umgebung.)
- theShell, eine in Qt . geschriebene Desktop-Shell
Eingebettete und mobile Benutzeroberflächen
- Aktiv weiterentwickelt oder gepflegt
- AsteroidOS , ein Open-Source-Betriebssystem für Smartwatches
- Avionics, das Inflight-Entertainment-System von Panasonic
- Blackberry 10 , ein Touchscreen-basiertes mobiles Betriebssystem von Blackberry Ltd.
- Cutie Shell, eine neue, von Sailfish inspirierte mobile Benutzeroberfläche
- Sailfish OS , ein von Jolla . entwickeltes mobiles Betriebssystem
- GlacierUX, der Nachfolger von MeeGo /Maemo 6/Harmattan, basierend auf Qt5 und Wayland
- Plasma Mobile , eine von KDE entwickelte berührungsbasierte Benutzeroberfläche
- LuneOS , Community-getriebener Nachfolger für Palm/HP webOS
- Nemo Mobile , basierend auf Mer
- Lomiri , früher bekannt als Unity8, eine von Ubports entwickelte Telefon-Benutzeroberfläche, ursprünglich von Canonical
- JingOS, eine berührungsfreundliche Benutzeroberfläche für Tablets
- Tesla Model S -Benutzeroberfläche im Auto
- webOS , ein Multitask-Betriebssystem von LG für Smart-Geräte wie Fernseher und Smartwatches
- Sky Q, das Home-Entertainment-System von Sky plc
- Verfügbar, aber inaktiv
Anwendungen mit Qt
Viele bemerkenswerte Open-Source- oder proprietäre plattformübergreifende Software verwenden Qt oder QML :
- 010 Editor , ein kommerzieller Hex-Editor und Texteditor für Microsoft Windows, Linux und macOS.
- Ableton Live
- Adobe Photoshop-Album
- Adobe Photoshop Elements
- AMDs Radeon Software Crimson Edition Treiber-Tool-Anwendung.
- Audacious , ein Musikplayer für Linux , Microsoft Windows und andere Unix-ähnliche Betriebssysteme.
- Autodesk Maya
- Autodesk 3ds Max
- Bitcoin Core , ein Bitcoin-Client
- Bitcoin ABC , ein Bitcoin-Cash-Client
- CryEngine V- Editor
- DaVinci Resolve , ein Videoeditor
- Dolphin (Emulator) , ein Emulator für die Nintendo Wii- und Nintendo GameCube- Systeme.
- Dorico Notationssoftware
- Dragonframe Stop-Motion-Animationssoftware
- EAGLE von CadSoft Computer / Autodesk , eine EDA-Anwendung mit Schaltplanerfassung, PCB-Layout, Auto-Router und CAM-Funktionen
- Electrum, ein leichter Bitcoin-Client
- FreeMat kostenlose Open-Source-Umgebung für numerische Computer
- Gambas kostenlose Open-Source- BASIC- integrierte Entwicklungsumgebung
- Google Earth
- Heimer, ein Open-Source-Tool für Mindmaps, Diagramme und Notizen
- Igor Pro , eine Datenanalysesoftware
- Krita Grafikbearbeitungs- und digitale Malsoftware
- LMMS , eine plattformübergreifende Musikproduktionssoftware
- Mathematica , ein mathematisches symbolisches Berechnungsprogramm, das manchmal als Computeralgebrasystem oder -programm bezeichnet wird und in vielen wissenschaftlichen, technischen, mathematischen und Computerbereichen verwendet wird.
- Moonlight Stream, eine Open-Source-Implementierung von Nvidia Shield
- Musescore , eine Open-Source-Multiplattform-Notationssoftware
- OBS , eine kostenlose plattformübergreifende Screencast-Software
- Orange Data-Mining-Suite
- qBittorrent plattformübergreifender kostenloser und quelloffener BitTorrent-Client
- Geographisches Informationssystem QGIS
- Qtractor Audio Mehrspur-Recorder und Bearbeitungssoftware
- QuiteRSS- Feed-Reader
- Retroshare F2F-Kommunikationsplattform
- Roblox Studio, ein Tool zur Spieleerstellung, das auf der Roblox-Plattform verwendet wird
- Scribus Desktop-Publishing-Software
- Sibelius Musikkompositions- und Notationssoftware
- Source 2- Engine-Tools eine von Valve entwickelte 3D-Videospiel-Engine
- Stellarium , ein Planetariumsprogramm
- Subsurface , eine Software zum Protokollieren und Planen von Tauchgängen, die ursprünglich von Linus Torvalds entworfen und entwickelt wurde
- SuperCollider , eine Umgebung und Programmiersprache für Echtzeit-Audiosynthese und algorithmische Komposition
- Teamviewer , ein Computersoftwarepaket für Fernsteuerung, Desktop-Sharing, Online-Meetings, Webkonferenzen und Dateiübertragung zwischen Computern
- Telegram , ein Messaging-Client für Windows, Mac und Linux
- VirtualBox OS Virtualisierungssoftware
- VLC Media Player
- Wireshark , ein Paketanalysator
- WPS-Büro
- XaoS , ein Echtzeit-Fraktal-Zoom
- XnView MP
Organisationen, die Qt . verwenden
Qt wird von einer Vielzahl von Unternehmen und Organisationen wie z
Qt-Softwarearchitektur
Qt-Konzepte
Qt baut auf diesen Schlüsselkonzepten auf:
- Vollständige Abstraktion der GUI
- Bei seiner ersten Veröffentlichung verwendete Qt eine eigene Paint-Engine und Steuerelemente, die das Aussehen der verschiedenen Plattformen emulierten, auf denen es ausgeführt wurde, als es seine Widgets zeichnete. Dies erleichterte die Portierungsarbeit, da nur sehr wenige Klassen in Qt wirklich von der Zielplattform abhingen; dies führte jedoch gelegentlich zu geringfügigen Abweichungen, wenn diese Emulation unvollkommen war. Neuere Versionen von Qt verwenden die nativen APIs der verschiedenen Plattformen auf Plattformen mit einem nativen Widget-Set, um Metriken abzufragen und die meisten Steuerelemente zu zeichnen, und leiden nicht so oft unter solchen Problemen. Auf einigen Plattformen (wie MeeGo und KDE) Qt ist die native API. Einige andere portable grafische Toolkits haben andere Designentscheidungen getroffen; beispielsweise WxWidgets verwendet die Toolkits der Zielplattform für ihre Implementierungen.
- Signale und Slots
- Ein in Qt eingeführtes Sprachkonstrukt für die Kommunikation zwischen Objekten, das es einfach macht, das Beobachtermuster zu implementieren , während Boilerplate-Code vermieden wird . Das Konzept besteht darin, dass GUI- Widgets Signale mit Ereignisinformationen senden können, die von anderen Controls mit speziellen Funktionen, den sogenannten Slots, empfangen werden können.
- Metaobjekt- Compiler
- Der Metaobjekt- Compiler, moc genannt , ist ein Werkzeug, das auf den Quellen eines Qt-Programms ausgeführt wird. Es interpretiert bestimmte Makros aus dem C++-Code als Annotationen und verwendet sie, um zusätzlichen C++-Code mit Metainformationen über die im Programm verwendeten Klassen zu generieren . Diese Metainformationen werden von Qt verwendet, um Programmierfunktionen bereitzustellen, die in C++ nativ nicht verfügbar sind : Signale und Slots, Introspektion und asynchrone Funktionsaufrufe.
- Sprachbindungen
- Qt kann in anderen Programmiersprachen als C++ verwendet werden, wie Python, Javascript, C# und Rust über Sprachbindungen ; viele Sprachen haben Bindings für Qt 5 und Bindings für Qt 4 . Die Programmiersprache Ring enthält Qt in der Standardbibliothek.
Qt-Module
Ab Qt 4.0 wurde das Framework in einzelne Module aufgeteilt. Mit Qt 5.0 wurde die Architektur noch weiter modularisiert. Qt ist jetzt in Essential- und Add-On- Module aufgeteilt.
Qt-Grundlagen
Modul | Beschreibung |
---|---|
Qt-Kern | Das einzige erforderliche Qt-Modul, das Klassen enthält, die von anderen Modulen verwendet werden, einschließlich des Metaobjektsystems, Parallelität und Threading, Container, Ereignissystem, Plugins und E/A-Einrichtungen. |
Qt-GUI | Das zentrale GUI-Modul. In Qt 5 hängt dieses Modul nun von OpenGL ab , enthält aber keine Widget-Klassen mehr. |
Qt-Widgets | Enthält Klassen für klassische Widget-basierte GUI-Anwendungen und die QSceneGraph-Klassen. Wurde in Qt 5 von QtGui abgespalten . |
Qt QML | Modul für QML- und JavaScript- Sprachen. |
Qt Schnell | Das mit QML2 geschriebene Modul für GUI-Anwendungen. |
Qt-Schnellsteuerung | Widget-ähnliche Steuerelemente für Qt Quick, die hauptsächlich für Desktop-Anwendungen gedacht sind. |
Qt-Schnelllayouts | Layouts zum Anordnen von Elementen in Qt Quick . |
Qt-Netzwerk | Netzwerkabstraktionsschicht. Komplett mit Unterstützung für TCP , UDP , HTTP , TLS , SSL (in Qt 4) und SPDY (seit Qt 5.3). |
Qt-Multimedia | Klassen für Audio-, Video-, Radio- und Kamerafunktionen. |
Qt Multimedia-Widgets | Die Widgets von Qt Multimedia . |
Qt-SQL | Enthält Klassen für die Datenbankintegration mit SQL . |
Qt WebEngine | Ein neuer Satz von Qt Widget- und QML-Webview-APIs basierend auf Chromium . |
Qt-Test | Klassen für Komponententests von Qt-Anwendungen und -Bibliotheken. |
Qt-Add-ons
Modul | Beschreibung |
---|---|
Aktives Qt | Klassen für Anwendungen, die ActiveX verwenden . |
Qt-Bluetooth | Klassen, die auf Bluetooth- Hardware zugreifen . |
Qt-D-Bus | Klassen für IPC unter Verwendung des D-Bus- Protokolls. |
Qt-NFC | Klassen, die auf NFC- Hardware zugreifen . Bisher nur offiziell auf BlackBerry-Hardware (oder N9 im MeeGo-Port) unterstützt. |
Qt OpenGL | Legacy-Modul, das die OpenGL- Klassen von Qt 4 enthält. In Qt 5 wird die ähnliche Funktionalität in der Qt-GUI empfohlen. |
Qt-Standort | Klassen für den Zugriff auf GPS und andere Ortungsdienste sowie für Kartierung und Navigation. Abgespalten vom Qt 4 Mobility Modul von Qt Location . Unterstützt auf Android, BlackBerry, iOS, Linux (mit GeoClue ), Windows und Sailfish OS. |
Qt-Skript | Legacy-Modul für die Skripterstellung von Qt-Anwendungen mit ECMAScript/ JavaScript . In Qt 5 wird die Verwendung ähnlicher Klassen in Qt QML empfohlen. |
Qt-Sensoren | Klassen für den Zugriff auf verschiedene mobile Hardwaresensoren. War in Qt 4 Teil von Qt Mobile. Unterstützt auf Android, BlackBerry, iOS, WinRT, Mer und Linux. |
Qt Serieller Port | Klassen für den Zugriff auf Hardware und virtuelle serielle Ports. Unterstützt auf Windows, Linux und macOS. |
Qt WebChannel | Bietet Zugriff auf Qt-Objekte für HTML/Js über WebSockets . |
Qt WebKit | Qts WebKit- Implementierung und API. |
Qt WebKit-Widgets | Die Widget-API für Qt WebKit |
Qt WebSockets | Stellt eine WebSocket- Implementierung bereit . |
Qt-XML | Legacy-Modul mit Klassen für XML- APIs im SAX- und DOM- Stil . In Qt Core durch die Klassen QXmlStreamReader und QXmlStreamWriter ersetzt . |
Qt XML-Muster | Unterstützung für XPath- , XQuery- , XSLT- und XML-Schemavalidierung . |
Editionen
Es sind vier Editionen von Qt verfügbar: Community , Indie Mobile , Professional und Enterprise . Die Community-Version steht unter den Open Source-Lizenzen, während die Indie Mobile-, Professional- und Enterprise-Versionen, die zusätzliche Funktionen und Bibliotheken enthalten, zB Enterprise Controls, von The Qt Company kommerziell vertrieben werden.
Unterstützte Plattformen
Qt funktioniert auf vielen verschiedenen Plattformen; Folgendes wird offiziell unterstützt:
Plattform | Beschreibung |
---|---|
Linux/Unix | |
X11 | Qt für X Window-System ( Linux ); FreeBSD , NetBSD , OpenBSD und DragonFly BSD haben Community-Support. |
Wayland | Qt-Anwendungen können zur Ladezeit mit der Befehlszeilenoption -platform zwischen grafischen Backends wie X und Wayland wechseln . Dies ermöglicht einen nahtlosen Übergang von Qt-Anwendungen von X11 zu Wayland. SailfishOS verwendet nur Wayland, da es kein X11 hat. |
Android | Qt für Android (früher bekannt als Necessitas). |
Eingebettetes Linux | Qt für eingebettete Plattformen: Personal Digital Assistant , Smartphone usw. Existiert je nach Display-Technologie als mehrere Plattformen. DirectFB , LinuxFB und EGLFS ( EGL Vollbild ). |
Microsoft-Plattformen | |
Fenster | Qt für Microsoft Windows 7 , 8 und 10 |
Windows RT | Unterstützung für WinRT- basierte Windows 10 Mobile- Apps und Windows 10 IoT |
Apple-Plattformen | |
Mac OS | Qt für Apple macOS ; unterstützt Anwendungen auf Kakao |
iOS | Qt für iOS- Plattformen ( iPhone , iPad ) |
Andere eingebettete Plattformen | |
Integrität | Qt für Integrität |
QNX | Qt für QNX |
VxWorks | Qt für VxWorks . Nur verfügbar unter einer proprietären (kommerziellen) Lizenz. Qt 5.5. |
Nachdem Nokia den Qt-Quellcode für die Community auf Gitorious geöffnet hatte , erschienen verschiedene Portierungen. Es gibt auch einige Qt-Ports, die möglicherweise verfügbar sind, aber nicht mehr unterstützt werden. Diese Plattformen sind in Liste der von Qt unterstützten Plattformen aufgeführt . Siehe auch dort für aktuellen Community-Support für andere weniger bekannte Plattformen wie SailfishOS .
Lizenzierung
Qt ist unter den folgenden kostenlosen Softwarelizenzen verfügbar: GPL 2.0 , GPL 3.0 , LGPL 3.0 und LGPL 2.1 (mit Ausnahme von Qt). Beachten Sie, dass einige Module nur unter einer GPL-Lizenz verfügbar sind, was bedeutet, dass Anwendungen, die auf diese Module verweisen, dieser Lizenz entsprechen müssen.
Darüber hinaus war Qt schon immer unter einer kommerziellen Lizenz erhältlich, wie der Qt Commercial License, die die Entwicklung proprietärer Anwendungen ohne Lizenzbeschränkungen ermöglicht.
Qt-Tools
Qt wird mit einem eigenen Satz von Tools geliefert, um die plattformübergreifende Entwicklung zu vereinfachen, die ansonsten aufgrund unterschiedlicher Entwicklungstools umständlich sein kann.
Qt Creator ist eine plattformübergreifende IDE für C++ und QML. Die GUI- Layout/Design-Funktionalität von Qt Designer ist in die IDE integriert, obwohl Qt Designer weiterhin als eigenständiges Tool gestartet werden kann.
Zusätzlich zu Qt Creator bietet Qt qmake , ein plattformübergreifendes Tool zur Erstellung von Skripts , das die Generierung von Makefiles für Entwicklungsprojekte auf verschiedenen Plattformen automatisiert. In Qt stehen weitere Tools zur Verfügung, darunter der Qt Designer Interface Builder und der Qt Assistant Hilfebrowser (die beide in Qt Creator eingebettet sind), das Qt Linguist Übersetzungstool, uic (Benutzeroberflächen-Compiler) und moc (Meta-Object Compiler .). ).
Geschichte von Qt
Frühe Entwicklungen
Im Sommer 1990 Haavard Nord und Eirik Chambe-Eng (die ursprünglichen Entwickler von Qt und der CEO und Präsident bzw. von Trolltech ) arbeiten gemeinsam an einer Datenbankanwendung für Ultraschallbilder in C ++ geschrieben und laufen auf Mac OS , Unix und Microsoft-Windows . Sie begannen 1991 mit der Entwicklung von "Qt", drei Jahre bevor das Unternehmen als Quasar Technologies gegründet wurde, änderten dann den Namen in Troll Tech und dann in Trolltech.
Das Toolkit wurde Qt genannt, weil der Buchstabe Q in Haavards Emacs- Schrift ansprechend aussah , und "t" wurde von Xt , dem X-Toolkit, inspiriert .
Die ersten beiden Versionen von Qt hatten nur zwei Varianten: Qt/X11 für Unix und Qt/Windows für Windows.
Am 20. Mai 1995 veröffentlichte Troll Tech öffentlich Qt 0.90 für X11/Linux mit dem Quellcode unter der Qt Free Edition License . Diese Lizenz wurde von der Free Software Foundation als nicht konform mit der Definition für freie Software angesehen, da der Quellcode zwar verfügbar war, aber die Weitergabe modifizierter Versionen nicht gestattete. Trolltech hat diese Lizenz bis Version 1.45 verwendet. Eine Kontroverse brach um 1998 aus, als klar wurde, dass die K Desktop-Umgebung eine der führenden Desktop-Umgebungen für Linux werden würde. Da es auf Qt basierte, befürchteten viele Leute in der Freie-Software-Bewegung, dass ein wesentlicher Teil eines ihrer wichtigsten Betriebssysteme proprietär sein würde.
Die Windows-Plattform war nur unter einer proprietären Lizenz verfügbar, was bedeutete, dass kostenlose/Open-Source-Anwendungen, die in Qt für X11 geschrieben wurden, nicht auf Windows portiert werden konnten, ohne die proprietäre Edition zu erwerben.
Freie Software-freundlich werden
Mit der Veröffentlichung der Version 2.0 des Toolkits wurde die Lizenz in die Q Public License (QPL) geändert , eine freie Softwarelizenz , die jedoch von der Free Software Foundation als mit der GPL inkompatibel angesehen wird . Zwischen KDE und Trolltech wurden Kompromisse gesucht, wonach Qt nicht unter eine restriktivere Lizenz als die QPL fallen könnte, selbst wenn Trolltech aufgekauft oder in Konkurs gegangen wäre. Dies führte zur Gründung der KDE Free Qt Foundation, die garantiert, dass Qt unter eine BSD-ähnliche Lizenz fällt, sollte innerhalb von 12 Monaten keine freie/Open Source-Version von Qt veröffentlicht werden.
Im Jahr 2000 wurde Qt/X11 2.2 unter der GPL v2 veröffentlicht, was alle Kontroversen bezüglich der GPL-Kompatibilität beendete .
Ende 2001 veröffentlichte Trolltech Qt 3.0, das Unterstützung für Mac OS X (jetzt bekannt als macOS ) hinzufügte . Die Mac OS X-Unterstützung war bis Juni 2003 nur in der proprietären Lizenz verfügbar, als Trolltech Qt 3.2 mit Mac OS X-Unterstützung veröffentlichte, die unter der GPL verfügbar war.
Im Jahr 2002 begannen Mitglieder des KDE-on-Cygwin- Projekts mit der Portierung der GPL-lizensierten Qt/X11-Codebasis auf Windows. Dies war eine Reaktion auf die Weigerung von Trolltech, Qt/Windows unter der GPL zu lizenzieren, mit der Begründung, dass Windows keine freie/Open Source-Softwareplattform sei. Das Projekt hatte einen angemessenen Erfolg, obwohl es nie Produktionsqualität erreichte.
Dies wurde behoben, als Trolltech im Juni 2005 Qt 4.0 auch für Windows unter der GPL veröffentlichte. Qt 4 unterstützte die gleichen Plattformen in den kostenlosen Software-/Open-Source-Editionen wie in der proprietären Edition, so dass es mit Qt 4.0 und höher möglich ist Releases, um GPL-lizenzierte kostenlose/Open Source-Anwendungen mit Qt auf allen unterstützten Plattformen zu erstellen. Die GPL v3 mit Sonderausnahme wurde später als zusätzliche Lizenzierungsoption hinzugefügt. Die GPL-Ausnahme ermöglicht die Lizenzierung der endgültigen Anwendung unter verschiedenen GPL-inkompatiblen freien Software- / Open-Source- Lizenzen wie der Mozilla Public License 1.1.
Übernahme durch Nokia
Nokia erwarb Trolltech ASA am 17. Juni 2008 und änderte den Namen zunächst in Qt Software, dann in Qt Development Frameworks.
Nokia konzentrierte sich darauf, Qt zur wichtigsten Entwicklungsplattform für seine Geräte zu machen, einschließlich einer Portierung auf die Symbian S60-Plattform . Version 1.0 des Nokia Qt SDK wurde am 23. Juni 2010 veröffentlicht. Der Quellcode wurde über Gitorious, ein Community-orientiertes Git- Quellcode-Repository zur Verfügung gestellt, mit dem Ziel, eine breitere Community zu schaffen, die Qt verwendet und verbessert.
Am 14. Januar 2009 fügte Qt Version 4.5 eine weitere Option hinzu, die LGPL , um Qt sowohl für Nicht-GPL-Open-Source-Projekte als auch für geschlossene Anwendungen attraktiver zu machen.
Im Februar 2011 gab Nokia seine Entscheidung bekannt, Symbian-Technologien fallen zu lassen und seine zukünftigen Smartphones stattdessen auf der Windows Phone- Plattform zu basieren (und seitdem wurde auch die Unterstützung für diese Plattform eingestellt). Einen Monat später gab Nokia den Verkauf der kommerziellen Lizenzen und professionellen Dienste von Qt an Digia bekannt, mit dem unmittelbaren Ziel, die Qt-Unterstützung auf Android- , iOS- und Windows 8- Plattformen zu bringen und sich weiterhin auf die Desktop- und Embedded-Entwicklung zu konzentrieren, obwohl Nokia bleiben sollte die wichtigste Entwicklungskraft hinter dem Framework zu dieser Zeit.
Fusion und Spaltung mit Digia
Im März 2011 verkaufte Nokia den kommerziellen Lizenzteil von Qt an Digia , wodurch Qt Commercial entstand. Im August 2012 kündigte Digia an, Qt von Nokia zu übernehmen. Das Qt-Team bei Digia begann seine Arbeit im September 2012. Sie veröffentlichten Qt 5.0 innerhalb eines Monats und neuere Versionen alle sechs Monate mit neuen Funktionen und zusätzlich unterstützten Plattformen.
Im September 2014 übertrug Digia das Qt-Geschäft und die Urheberrechte an ihre hundertprozentige Tochtergesellschaft The Qt Company, die 25 mit Qt verbundene Marken besitzt. Im Mai 2016 fusionierten Digia und Qt vollständig in zwei eigenständige Unternehmen.
Das Qt-Projekt und offene Governance
Qt 5 wurde offiziell am 19. Dezember 2012 veröffentlicht. Diese neue Version markierte eine große Veränderung in der Plattform, wobei hardwarebeschleunigte Grafik, QML und JavaScript eine große Rolle spielten. Die traditionellen reinen C++-QWidgets wurden weiterhin unterstützt, profitierten jedoch nicht von den Leistungsverbesserungen, die durch die neue Architektur verfügbar sind. Qt 5 verbessert die Geschwindigkeit und Einfachheit der Entwicklung von Benutzeroberflächen erheblich.
Die Framework-Entwicklung von Qt 5 wechselte zu Open Governance bei qt-project.org, was es Entwicklern außerhalb von Digia ermöglichte, Patches zur Überprüfung einzureichen.
Qt-Mitwirkende
Abgesehen von The Qt Company beteiligen sich viele Organisationen und Einzelpersonen, die Qt als ihre Entwicklungsplattform verwenden, über das Qt-Projekt an der offenen Entwicklung von Qt.
Einer dieser Qt-Mitarbeiter ist Klarälvdalens Datakonsult AB, ein schwedisches Qt-Beratungsunternehmen. KDAB ist in vielen Bereichen tätig, einschließlich der Wartung mehrerer Komponenten.
Zusammen mit RIM / Blackberry , KDAB ist die Aufrechterhaltung der QNX und Blackberry - 10 - Ports von Qt.
Ein weiterer Teilnehmer ist Intel , der zum Beispiel Wayland- Support leistet . AudioCodes verwaltet die IBM ClearCase- Unterstützung in Qt Creator .
Als Vielnutzer von Qt sendet das KDE- Projekt viele Patches und Funktionen aus seiner Entwicklerbibliothek KDE Frameworks an Qt zurück.
Siehe auch
Literaturverzeichnis
Qt Wiki bietet eine umfassende Liste englischer Bücher über Qt. Dies ist eine Liste bemerkenswerter Bücher:
- Bocklage-Ryannel, Jürgen; Thelin, Johan (12. Mai 2015). "Qt 5 Cadaques" (1. Aufl.).
- Blanchette, Jasmin; Summerfield, Mark (14. Februar 2008). C++ GUI-Programmierung mit Qt 4 (2. Aufl.). Lehrlingssaal . ISBN 978-0-13-235416-5.
- Summerfield, Mark (23. August 2010). Fortgeschrittene Qt-Programmierung: Erstellen großartiger Software mit C++ und Qt 4 (1. Aufl.). Addison-Wesley . ISBN 978-0-321-63590-7.
- Fitzek, Frank HP; Mikkönen, Tommi; Torp, Tony (17. Mai 2010). Qt für Symbian (1. Aufl.). Wiley . ISBN 978-0-470-75010-0. Archiviert vom Original am 19. Dezember 2009.
- Summerfield, Mark (28. Oktober 2007). Schnelle GUI-Programmierung mit Python und Qt (1. Aufl.). Lehrlingssaal . ISBN 978-0-13-235418-9.
- Molkentin, Daniel (19. Juli 2007). The Book of Qt 4: The Art of Building Qt Applications (1. Aufl.). Keine Stärkepresse . ISBN 978-1-59327-147-3.
- Thelin, Johan (3. August 2007). Grundlagen der Qt-Entwicklung (1. Aufl.). Apress . ISBN 978-1-59059-831-3. Archiviert vom Original am 20. Januar 2015 . Abgerufen am 18. Juni 2015 .
- Dalheimer, Matthias (Januar 2002). Programmierung mit Qt (2. Aufl.). O'Reilly-Medien . ISBN 978-0-596-00064-6.
- Ezust, Alan; Ezust, Paul (10. September 2006). Eine Einführung in Entwurfsmuster in C++ mit Qt 4 (2. Aufl.). Lehrlingssaal . ISBN 978-0-13-187905-8.