Qt – wieloplatformowy framework programistyczny
Qt (wymawiane „kłot”) to otwarto‑źródłowy i komercyjny framework do tworzenia aplikacji graficznych oraz wieloplatformowych systemów oprogramowania. Został zaprojektowany z myślą o języku C++, lecz obsługuje także języki Python (poprzez PyQt i Qt for Python), JavaScript, QML oraz inne. Framework umożliwia programistom pisanie kodu raz i uruchamianie go na różnych systemach operacyjnych, takich jak Linux, Windows, macOS, a także na platformach mobilnych (Android, iOS).
Historia
Projekt Qt rozpoczął się w 1991 roku w norweskim mieście Oslo, w firmie Trolltech. Pierwsza wersja biblioteki została wydana publicznie w 1994 roku i początkowo opierała się na technologiach X11. W 1997 roku Qt zyskał popularność dzięki środowisku graficznemu KDE, które zostało zbudowane wyłącznie przy użyciu tego frameworku.
W 2000 roku Trolltech wprowadził model dwulicencyjny, udostępniając Qt zarówno na licencji komercyjnej, jak i na warunkach GNU GPL (od wersji 2.0). Później, od wersji Qt 4, dostępna stała się także licencja LGPL, co jeszcze bardziej zwiększyło adopcję w projektach otwarto‑źródłowych.
Architektura
Qt składa się z kilku warstw:
- Qt Core – podstawowa biblioteka dostarczająca klasy do obsługi kontenerów, zarządzania pamięcią, wątków (QThread), sygnałów i slotów oraz innych niskopoziomowych mechanizmów.
- Qt GUI – zestaw klas umożliwiających tworzenie interfejsów graficznych (widżetów, okien, zdarzeń).
- Qt Widgets – tradycyjny zestaw tradycyjnych elementów interfejsu użytkownika, wykorzystywany w klasycznych aplikacjach desktopowych.
- Qt Quick oraz QML – nowoczesny framework do budowania dynamicznych, reaktywnych interfejsów przy użyciu języka deklaratywnego QML i silnika JavaScript.
- Qt Network, Qt Multimedia, Qt SQL – moduły rozszerzające możliwości aplikacji o obsługę sieci, multimediów i baz danych.
Zastosowania
Qt znajduje zastosowanie w szerokim spektrum projektów, m.in.:
- Środowiska graficzne (np. KDE Plasma).
- Aplikacje przemysłowe i automatyka (systemy SCADA).
- Programy multimedialne (odtwarzacze wideo, edytory graficzne).
- Gry i silniki gier (np. Qt 3D).
- Rozwiązania mobilne (aplikacje na Android i iOS).
- Systemy wbudowane (np. w samochodach, urządzeniach medycznych).
Licencje
Od wersji Qt 5 framework jest dystrybuowany na trzech głównych licencjach:
- Komercyjna – pozwala na użycie Qt w produktach zamkniętych bez konieczności udostępniania kodu źródłowego.
- GNU GPL (wersja 3) – wymaga, aby wszystkie pochodne były również udostępniane na tej samej licencji.
- LGPL (wersja 3) – umożliwia dynamiczne linkowanie z zamkniętym oprogramowaniem przy zachowaniu pewnych ograniczeń.
W praktyce wybór licencji zależy od modelu biznesowego projektu oraz od wymagań prawnych jednostki deweloperskiej.
Rozwój i społeczność
Obecnie rozwój Qt jest koordynowany przez firmę The Qt Company, powstałą w 2011 roku po przejęciu działu Qt przez Digia. Społeczność open source aktywnie uczestniczy w rozwoju durch GitHub (repozytorium publiczne), organizując konferencje takie jak Qt Day oraz Qt DevSummit.
Wersje
| Wersja | Rok wydania | Kluczowe cechy |
|---|---|---|
| Qt 1 | 1994 | Pierwsze wydanie, obsługa X11 i Windows. |
| Qt 2 | 1998 | Wprowadzenie systemu meta‑obiektów i sygnałów/slotów. |
| Qt 3 | 2001 | Rozbudowane wsparcie dla OpenGL i akceleracji graficznej. |
| Qt 4 | 2005 | Nowa architektura modułowa, wprowadzenie Qt Quick i lepsza wydajność. |
| Qt 5 | 2012 | Wsparcie dla QML, lepsza integracja z OpenGL ES i nowy silnik Qt 3D. |
| Qt 6 | 2020 | Modernizacja pod kątem C++20, migracja z Qt 5, obsługa Vulkan i podniesiona kompatybilność z platformami mobilnymi. |
Podobne projekty
Do najważniejszych alternatyw i uzupełnień Qt zalicza się:
- GTK – biblioteka interfejsu graficznego używana w środowisku GNOME.
- wxWidgets – kolejny wieloplatformowy framework GUI.
- Flutter – framework Google do aplikacji mobilnych i desktopowych.
Źródła
Więcej informacji można znaleźć w oficjalnej dokumentacji Qt, w podręcznikach C++ oraz w publikacjach dotyczących projektowania interfejsów użytkownika.
Zobacz także
KDE Plasma, The Qt Company, C++, Open source, Inżynieria oprogramowania