encyklopedia.space

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:

  1. Komercyjna – pozwala na użycie Qt w produktach zamkniętych bez konieczności udostępniania kodu źródłowego.
  2. GNU GPL (wersja 3) – wymaga, aby wszystkie pochodne były również udostępniane na tej samej licencji.
  3. 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