Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

Qt

Z Wikipedii, wolnej encyklopedii
Ten artykuł dotyczy biblioteki programistycznej. Zobacz też:QT.
Qt
Logo Qt
Logo programu
Ilustracja
Zrzut ekranu programu Qt Designer
AutorQt Development Frameworks
Pierwsze wydanie1992
Aktualnawersja stabilna6.8.2
(31 stycznia 2025) [±]
Aktualnawersja testowa6.7 Beta 1
(20 grudnia 2023) [±]
System operacyjnyGNU/Linux,BSD,Solaris,Unix,Mac OS X,Haiku,MS Windows,Symbian,Windows CE,Embedded linux,Amiga OS
Rodzajbiblioteki programistyczne
LicencjaLGPL (v. 2.1),GPL (v. 3.0), komercyjna
Książki w Wikibooks
Multimedia w Wikimedia Commons
Strona internetowa

Qt – zestawprzenośnychbibliotek i narzędzi programistycznych przeznaczonych dla językówC++,QML iJava. Ich podstawowym składnikiem sąklasy służące do budowygraficznego interfejsuprogramów komputerowych, począwszy od wersji 4.0 Qt zawiera też narzędzia do tworzenia programów konsolowych i serwerów.

Qt jest obecnie rozwijane przez organizacjęQt Project, do której oprócz niezależnych twórcówOpen Source należą m.in. firmyDigia,KDAB,ICS. Digia jest właścicielem praw do komercyjnej wersji Qt oraz do znaków towarowych, po zakupie od firmyNokia (będącej właścicielem pomiędzy styczniem 2008 a sierpniem 2012)[1].

Charakterystyka środowiska Qt

[edytuj |edytuj kod]

Środowisko Qt jest dostępne dla platform:X11 (m.in.GNU/Linux,BSD,Solaris),Windows,Mac OS X,Haiku oraz dlaurządzeń wbudowanych opartych naLinuksie (Qt Extended),Windows CE,Symbian,Android. Qt jest podstawą m.in. dlauniksowego środowiska graficznegoKDE orazuniksowych wersji komunikatora internetowegoSkype[2] i programuGoogle Earth.

Biblioteki Qt dostępne są w języku C++ i Java; mogą też być wykorzystywane w programach napisanych w innych językach, m.in.Ada (QtAda),C# (Qyoto/Kimono, QtSharp),Pascal,Perl (Perl Qt4),PHP (PHP-Qt),Ruby (QtRuby) iPython (PyQt, PySide). Charakteryzują się w pełni obiektową architekturą. Zawierają wiele technologii programowania graficznego interfejsu użytkownika, istniejących wcześniej jedynie wTk: mechanizmsygnałów i slotów, automatyczne rozmieszczaniewidżetów oraz zhierarchizowany system obsługizdarzeń.

Biblioteki Qt, oprócz obsługi interfejsu użytkownika, zawierają także niezależne od platformy systemowej moduły obsługi procesów, plików, sieci, grafiki trójwymiarowej (OpenGL), baz danych (SQL), językaXML, lokalizacji,wielowątkowości, zaawansowanej obsługi napisów orazwtyczek. Zawierają także własne, niezależne od bibliotekiSTL szablony klaskontenerów.

W skład Qt wchodzi wiele specjalistycznych narzędzi programistycznych. Są to m.in.:

  • moc (Meta Object Compiler) – specjalny preprocesor, który na podstawie plików nagłówkowych (*.h) generuje dodatkowe pliki źródłowe (*.cpp)
  • uic (User Interface Compiler) – kompilator plików *.ui zwykle generowanych za pośrednictwem programu Qt Designer
  • qmake – program do zarządzania procesem kompilacji; jego głównym zadaniem jest utworzenie, a później aktualizacja plikuMakefile na podstawie prostego opisu zawartego w definicji projektu (*.pro)
  • Qt Designer – aplikacja graficzna do definiowania graficznego interfejsu użytkownika (okien dialogowych itp.)
  • Qt Linguist – aplikacja wspomagająca tłumaczenie programu na różne języki
  • Qt Assistant – aplikacja zawierająca rozbudowany system pomocy dla programistów
  • Qt Creatorzintegrowane środowisko programistyczne

Historia

[edytuj |edytuj kod]

Pomysłodawcami i pierwszymi twórcami Qt byli Haavard Nord i Eirik Chambe-Eng. Projektowanie pierwszych klas biblioteki rozpoczęto w 1991 r. Rok później Chambe-Eng opracował koncepcję mechanizmu sygnałów i gniazd, który wkrótce stał się fundamentem biblioteki.

4 marca 1994 r. Nord i Chambe-Eng założyli firmę Quasar Technologies. W późniejszych latach zmieniała ona nazwy kolejno na Troll Tech, Trolltech, Qt Software iQt Development Frameworks. Inspiracją dla nazwy Qt była nazwa bibliotekiXt(inne języki) (X Toolkit), w której literę X zastąpiono literą Q (zdaniem twórców Qt, litera Q wyglądała najładniej jakoprzedrostek nazw klas w edytorzeEmacs)[3].

W 1995 firma otrzymała pierwszy kontrakt i zatrudniła pierwszego programistę. 20 maja 1995 na serwerzesunsite.unc.edu pojawiło się pierwsze oficjalne wydanie Qt – Qt 0.90. Mogło być ono używane do tworzenia aplikacji dla systemówUnix iWindows na dwóch licencjach: komercyjnej (Windows, Linux) i wolnej (Linux). Do końca 1996 sprzedano łącznie 18 licencji dla 8 różnych firm.

W 1997 twórcyKDE postanowili oprzeć swój produkt na bibliotece Qt. Dzięki temu szybko osiągnęła ona status jednej z najpopularniejszych bibliotek dla aplikacji okienkowych w C++ dla systemuLinux. Sukces ten stał się jednocześnie przyczyną obaw wielu zwolenników wolnego oprogramowania przed konsekwencjami rozpowszechnienia w środowisku systemu Linux programów opartych na własnościowej bibliotece nie podlegającej licencjiGPL. Doprowadziło to do zainicjowania dwóch projektów alternatywnych dla Qt: Harmony iGNOME. Celem pierwszego z nich było stworzenie ekwiwalentu Qt podlegającego licencji GPL, celem drugiego – stworzenie realnej alternatywy dla KDE opartej wyłącznie na wolnym oprogramowaniu. Projekt Harmony został wstrzymany w 2000 r. wraz z udostępnieniem na licencji GPL środowiska Qt dla systemu Linux.

W 2000 Trolltech opublikował wersję Qt dla urządzeń wbudowanych –Qt/Embedded (przemianowaną później naQtopia Core iQt Extended).

W 2001, wraz z opublikowaniem Qt 3.0, rozszerzono zakres platform systemowych obsługiwanych przez Qt oMac OS X.

W 2005, wraz z opublikowaniem Qt 4.0, po raz pierwszy udostępniono wersję Qt dla wszystkich obsługiwanych systemów operacyjnych (w tym Windows) na licencji GPL. Dopiero ta decyzja wygasiła w środowisku wolnego oprogramowania próby stworzenia rozwiązań alternatywnych do Qt pod względem polityki licencyjnej (jednym z ostatnich poważnych projektów tego typu byłQ... Windows[4]).

W 2007 udostępniono wersję Qt dla językaJava (Qt Jambi).

W 2008 Trolltech został przejęty przez Nokię i zmienił nazwę na Qt Software, a od sierpnia 2009 naQt Development Frameworks. W styczniu 2009 złagodzono politykę licencyjną (stosowana od wersji Qt 4.5 opcjonalna licencjaLGPL praktycznie czyni z Qt bibliotekę darmową dla większości zastosowań komercyjnych).W tym samym roku całkowicie wstrzymano rozwój Qt Jambi[5] oraz zaprzestano rozwoju Qt Extended jako osobnej platformy, włączając część jej funkcji do głównej gałęzi Qt[6].

W 2010 Nokia zapowiedziała użycie Qt jako głównej platformy programistycznej w nadchodzącymSymbianie^4 oraz systemieMeeGo. Wydano testowe wersje API do urządzeń mobilnych – Qt Mobility (zastępujące Qt Extended).

W 2012 Digia kupiła od firmy Nokia framework Qt[7], zapewniając przy okazji dalsze wsparcie i rozwój darmowej licencji i współpracę z projektemKDE oraz KDE Free Qt Foundation na rzecz otwartego i wolnego oprogramowania[8].

Główne wydania biblioteki

[edytuj |edytuj kod]
Proste okno z przyciskiem
  • Qt 1.0 – 24 września 1996
  • Qt 2.0 – czerwiec 1999
  • Qt 3.0 – 2001
  • Qt 4.0 – 28 czerwca 2005[9]
  • Qt 5.0 – 19 grudnia 2012[10]
  • Qt 6.0 – 8 grudnia 2020[11]

Qt 4

[edytuj |edytuj kod]

Qt w wersji 4 jest niekompatybilna z poprzednimi wersjami Qt – zarówno na poziomie kodów źródłowych, jak i kodów wykonywalnych. W porównaniu z wersją Qt 3, wprowadzono do niej sześć nowych technologii:

  • Tulip – Zestaw szablonów klaskontenerów (m.in.QList,QLinkedList,QVector,QStack,QQueue,QMap,QMultiMap,QHash,QMultiHash iQSet).
  • Interview – Zestaw klas ułatwiających pisanie kodu zgodnie ze wzorcemmodel-widok-kontroler.
  • Arthur – Zestaw klas do grafiki dwuwymiarowej.
  • Scribe – Zestaw klas do pozycjonowania i wyświetlania tekstu.
  • MainWindow – Zestaw klas zawierających elementy niezbędne do tworzenia nowoczesnych okien głównych aplikacji (w tym aplikacji typuMDI) z menu, paskami narzędziowymi, skrótami klawiaturowymi, paskiem stanu itp.
  • Zupełnie nowa architektura programu Qt Designer.

Wersje Qt 4

[edytuj |edytuj kod]
  • Qt 4.1 (19 grudnia 2005). Wprowadzono m.in. obsługę formatów SVG (rysunki i animacje) i PDF (drukowanie) oraz umożliwiono stosowanie półprzezroczystych okien potomnych na wszystkich platformach.
  • Qt 4.2 (4 października 2006). Wprowadzono m.in. moduł Graphics View (definiujący scenę, na której można efektywnie wyświetlać i manipulować tysiącami własnych obiektów graficznych), umożliwiono kontrolowanie wyglądu widgetów przy pomocy arkuszy stylów (wzorowanych naCSS), wprowadzono ułatwienia przy implementacji operacjiundo („cofnij”) i uzupełniania kodu (code completion).
  • Qt 4.3 (30 maja 2007). Zwiększono zgodność z systemem Vista, ulepszono obsługę standardów OpenGL (uwzględnienie nowych możliwości nowoczesnych kart graficznych) i SVG, włączono modułQtScript(inne języki) obsługujący język skryptowy zgodny ze standardemECMAScript, wprowadzono obsługę protokołówSSL iHTTPS.
  • Qt 4.4 (6 maja 2008). Integracja z silnikiemWebKit (przeglądarka WWW), integracja z bibliotekąPhonon (multimedia), obsługa platformyWindows CE, obsługa standarduXQuery 1.0 iXPath 2.0 (język XML), nowy, uproszczony moduł dla aplikacjiwielowątkowych, zmodyfikowany system pomocy, integracja standardowych widżetów z modułem Graphics View.
  • Qt 4.5 (3 marca 2009). Zwiększona wydajność biblioteki, obsługa programów hybrydowych (łączenie aplikacji webowych z kodem natywnym), obsługa 64-bitowej platformy Mac. Do standardowej dystrybucji włączono wieloplatformowe zintegrowane środowisko programistyczneQt Creator. Udostępniono Qt SDK zawierający pełną wersję biblioteki wraz z wszystkimi narzędziami deweloperskimi
  • Qt 4.6 (1 grudnia 2009). Nowe API: animacje, gesty, wielodotyk; wstępne wsparcie Symbiana, Windowsa 7 oraz Mac OS X 10.6; poprawki wydajności.
  • Qt 4.7 (21 września 2010). Qt Quick – platforma tworzenia UI.
  • Qt 4.8 (15 grudnia 2011). Qt Platform Abstraction (warstwa ułatwiająca przenoszenie aplikacji na różne platformy) wsparcie dla wielowątkowego wykorzystania biblioteki OpenGL oraz dostępu HTTP, optymalizacja systemu dostępu do plików.

Qt 5

[edytuj |edytuj kod]
Zaawansowane efekty dostępne od wersji 5.

Jest ona w znacznym stopniu zgodna z Qt 4 na poziomie kodu źródłowego, ale niezgodna na poziomie kodów wykonywalnych, więc oprogramowanie wymaga ponownej kompilacji.

Licencje

[edytuj |edytuj kod]

Od wersji 4.5 na wszystkich platformach dostępne są trzy rodzaje licencji[12]:

  • LGPL 2.1 (Czerwiec 2020r LGPLv3)
  • GPL 3.0
  • komercyjna (dostępna w firmieDigia)

Wykorzystanie Qt

[edytuj |edytuj kod]

W 2017 roku firma Qt Development Frameworks oszacowała społeczność około 1 miliona programistów[13] działająca na całym świecie w 70 branżach[14].

Organizacje wykorzystujące Qt:

Zobacz też

[edytuj |edytuj kod]

Przypisy

[edytuj |edytuj kod]
  1. Nokia sells Qt to Digia [online] [dostęp 2012-08-12] (ang.).
  2. Qt in use – Desktop [online] [dostęp 2018-04-23] [zarchiwizowane zadresu 2009-08-17] (ang.).
  3. J. Blanchette i M.J.B.M. Summerfield J. Blanchette i M.J.B.M.,C++ GUI Programming with Qt 4 [online] [dostęp 2016-01-23] [zarchiwizowane zadresu 2019-09-23] (ang.).
  4. Q... Windows [online] [dostęp 2009-08-06] (ang.).
  5. Qt Software to discontinue Qt Jambi after 4.5 release [online] [dostęp 2018-04-23] [zarchiwizowane zadresu 2012-02-29] (ang.).
  6. Qt Software discontinues Qt Extended [online] [dostęp 2018-04-23] [zarchiwizowane zadresu 2012-08-20] (ang.).
  7. Digia to acquire Qt from Nokia. Business Wire, 2012-08-09. [dostęp 2018-04-23]. (ang.).
  8. Digia kupuje Qt od Nokii | KDEFamily.
  9. Trolltech Releases Qt 4.0 [online], KDE.news, 28 czerwca 2005 [dostęp 2023-12-13] (ang.).
  10. Introducing Qt 5.0 [online], www.qt.io [dostęp 2023-12-13] (ang.).
  11. Qt Platform 6.0 Released | Embedded Systems Development Platform | Qt [online], www.qt.io [dostęp 2023-12-13] (ang.).
  12. Qt for developers by developers | Cross-platform development [online], qt-project.org [dostęp 2017-11-26] (ang.).
  13. QT GROUP OYJ Managers’ Transactions [online], qt.io [dostęp 2021-03-08] (ang.).
  14. RotemR. Shneor RotemR.,Handbook of Research on Born Globals, Chapter 10: Born Global Firms, Internet, and New Forms of Internationalization., 2012,ISBN 978-0-85793-804-6 .
  15. Qt Newsroom | Qt [online], qt.io [dostęp 2021-03-08] (ang.).
  16. Qt Creator as BMW Car IT Automotive IDE, BMW Car IT. [dostęp 2021-03-08].
  17. CRYENGINE | An update on our Sandbox interface and the Legacy Editor [online], CRYENGINE [dostęp 2021-03-08] (ang.).
  18. JonJ. Porter JonJ.,LG tries to bring webOS to cars, robots, and the smart home with new partnership [online], The Verge, 26 czerwca 2019 [dostęp 2021-03-08] (ang.).
  19. How to transition your existing, native mobile applications to using a common, Qt-based core « Qt World Summit 2016 [online] [dostęp 2021-03-08] (ang.).
  20. FredF. Lambert FredF.,Tesla releases some of its software to comply with open source licences [online], Electrek, 19 maja 2018 [dostęp 2021-03-08] (ang.).
  21. Qt Tutorial #1: Wstęp – kilka słów o bibliotece Qt. [online], DevCode.pl, 10 lipca 2016 [dostęp 2021-03-08] (pol.).

Linki zewnętrzne

[edytuj |edytuj kod]
Zobacz multimedia związane z tematem:Qt
KDE
Software Compilation
Workspaces
Aplikacje
Jądro
Pakiety
Community
Biblioteki graficzne
Niskopoziomowe
Wysokopoziomowe
NaAmigaOS
NamacOS
NaWindows
NaUnix,
bezX11
Wieloplatformowe,
według języka
CLI
C
Objective-C
C++
Flash
Java
Desktop
Web
JavaScript
Common Lisp
Pascal
Object Pascal
Perl
PHP
Python
Ruby
XML
Źródło: „https://pl.wikipedia.org/w/index.php?title=Qt&oldid=75702673
Kategorie:
Ukryte kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp