[go: nahoru, domu]

Przejdź do zawartości

Qt: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
PG (dyskusja | edycje)
Anulowanie wersji 43328289 autora WebSplashPL (dyskusja) WP:LZ
 
(Nie pokazano 46 wersji utworzonych przez 33 użytkowników)
Linia 3: Linia 3:
|nazwa = Qt
|nazwa = Qt
|rodzaj = [[biblioteka programistyczna|biblioteki programistyczne]]
|rodzaj = [[biblioteka programistyczna|biblioteki programistyczne]]
|logo =
|logo = Qt logo 2016.svg
|grafika = Qt Designer 4 4 3.png
|grafika = Qt Designer 4 4 3.png
|opis grafiki =
|opis grafiki = Zrzut ekranu programu Qt Designer
|autor = [[Qt Development Frameworks]]
|autor = [[Qt Development Frameworks]]
|platforma sprzętowa =
|platforma sprzętowa =
|system operacyjny = [[GNU/Linux]], [[Berkeley Software Distribution|BSD]], [[Solaris (system operacyjny)|Solaris]], [[Unix]], [[OS X|Mac OS X]], [[Haiku (system operacyjny)|Haiku]], [[Microsoft Windows|MS Windows]], [[Symbian]], [[Windows CE]], [[Embedded linux]], [[AmigaOS|Amiga OS]]
|system operacyjny = [[GNU/Linux]], [[Berkeley Software Distribution|BSD]], [[Solaris (system operacyjny)|Solaris]], [[Unix]], [[OS X|Mac OS X]], [[Haiku (system operacyjny)|Haiku]], [[Microsoft Windows|MS Windows]], [[Symbian]], [[Windows CE]], [[Embedded linux]], [[AmigaOS|Amiga OS]]
|język programowania =
|język programowania =
|pierwsze wydanie = [[1992]]
|pierwsze wydanie = [[1992]]
|wersja stabilna = 5.4.1 / {{Data wydania|2015|02|24}}<ref>{{cytuj stronę | url = https://blog.qt.io/blog/2015/02/24/qt-5-4-1-released | tytuł = Qt 5.4.1 Released | data dostępu = 2015-02-24 | język=en }}</ref>
|wersja testowa =
|licencja = [[GNU Lesser General Public License|LGPL]] (v. 2.1), [[GNU General Public License|GPL]] (v. 3.0), komercyjna
|licencja = [[GNU Lesser General Public License|LGPL]] (v. 2.1), [[GNU General Public License|GPL]] (v. 3.0), komercyjna
|wikibooks = Programowanie C++ Qt4 w systemie Gnu-Linux
|wikibooks = Programowanie C++ Qt4 w systemie Gnu-Linux
|commons =
|commons = Category:Qt
|www = http://qt.digia.com/
|www = https://www.qt.io
}}
}}
'''Qt''' - zestaw [[Przenośność oprogramowania|przenośnych]] [[Biblioteka programistyczna|bibliotek]] i narzędzi programistycznych dedykowanych dla języków [[C++]], [[QML]] i [[Java]]. Ich podstawowym składnikiem są [[klasa (programowanie obiektowe)|klasy]] służące do budowy [[Interfejs graficzny|graficznego interfejsu]] [[Program komputerowy|programów komputerowych]], począwszy od wersji 4.0 Qt zawiera też narzędzia do tworzenia programów konsolowych i serwerów.
'''Qt''' zestaw [[Przenośność oprogramowania|przenośnych]] [[Biblioteka programistyczna|bibliotek]] i narzędzi programistycznych przeznaczonych dla języków [[C++]], [[QML]] i [[Java]]. Ich podstawowym składnikiem są [[klasa (programowanie obiektowe)|klasy]] służące do budowy [[Graficzny interfejs użytkownika|graficznego interfejsu]] [[Program komputerowy|programów komputerowych]], począwszy od wersji 4.0 Qt zawiera też narzędzia do tworzenia programów konsolowych i serwerów.


Twórcą Qt jest obecnie organizacja [[Qt Project]], do której oprócz niezależnych twórców [[Otwarte oprogramowanie|Open Source]] należą m.in. firmy [[Digia]], [[KDAB]], [[ICS]]. [[Digia]] jest właścicelem praw do komercyjnej wersji Qt oraz do znaków towarowych, po zakupie od firmy [[Nokia]] (będącej właścicielem pomiędzy styczniem [[2008]] a sierpniem [[2012]]).<ref>{{cytuj stronę | url=http://www.techrepublic.com/blog/australia/nokia-sells-qt-to-digia/1268 | tytuł = ''Nokia sells Qt to Digia'' | data dostępu = 12 sierpnia 2012| język = en}}</ref>
Qt jest obecnie rozwijane przez organizację [https://www.qt.io Qt Project], do której oprócz niezależnych twórców [[Otwarte oprogramowanie|Open Source]] należą m.in. firmy [[Digia]], [[KDAB]], [[Integrated Computer Solutions|ICS]]. Digia jest właścicielem praw do komercyjnej wersji Qt oraz do znaków towarowych, po zakupie od firmy [[Nokia]] (będącej właścicielem pomiędzy styczniem 2008 a sierpniem 2012)<ref>{{cytuj |url = http://www.techrepublic.com/blog/australia/nokia-sells-qt-to-digia/1268 |tytuł = Nokia sells Qt to Digia |data dostępu = 2012-08-12 |język = en}}</ref>.


== Charakterystyka środowiska Qt ==
== Charakterystyka środowiska Qt ==
Środowisko Qt jest dostępne dla platform: [[X Window System|X11]] (m.in. [[GNU/Linux]], [[Berkeley Software Distribution|BSD]], [[Solaris (system operacyjny)|Solaris]]), [[Microsoft Windows|Windows]], [[OS X|Mac OS X]], [[Haiku (system operacyjny)|Haiku]] oraz dla [[system wbudowany|urządzeń wbudowanych]] opartych na [[Linux|Linuksie]] ([[Qt Extended]]), [[Windows CE]], [[Symbian]], [[Android (system operacyjny)|Android]]. Qt jest podstawą dla m.in. [[Unix|uniksowego]] środowiska graficznego [[KDE]] oraz [[Unix|uniksowych]] wersji komunikatora internetowego [[Skype]]<ref>{{cytuj stronę | url=http://qt.nokia.com/qt-in-use/qt-in-use/target/desktop | tytuł = ''Qt in use - Desktop'' | data dostępu = 5 stycznia 2010| język = en}}</ref> i programu [[Google Earth]].
Środowisko Qt jest dostępne dla platform: [[X Window System|X11]] (m.in. [[GNU/Linux]], [[Berkeley Software Distribution|BSD]], [[Solaris (system operacyjny)|Solaris]]), [[Microsoft Windows|Windows]], [[OS X|Mac OS X]], [[Haiku (system operacyjny)|Haiku]] oraz dla [[system wbudowany|urządzeń wbudowanych]] opartych na [[Linux|Linuksie]] ([[Qt Extended]]), [[Windows CE]], [[Symbian]], [[Android (system operacyjny)|Android]]. Qt jest podstawą m.in. dla [[Unix|uniksowego]] środowiska graficznego [[KDE]] oraz [[Unix|uniksowych]] wersji komunikatora internetowego [[Skype]]<ref>{{cytuj |url = http://web.archive.org/web/20090817230356/http://qt.nokia.com:80/qt-in-use/qt-in-use/target/desktop |tytuł = Qt in use Desktop |data dostępu = 2018-04-23 |język = en}}</ref> i programu [[Google 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 (informatyka)|Ada]] (QtAda), [[C Sharp|C#]] (Qyoto/Kimono), [[Pascal (język programowania)|Pascal]], [[Perl]] (Perl Qt4), [[PHP]] (PHP-Qt), [[Ruby (język programowania)|Ruby]] (QtRuby) i [[Python]] (PyQt). Charakteryzują się w pełni obiektową architekturą. Zawierają wiele technologii programowania graficznego interfejsu użytkownika, istniejących wcześniej jedynie w [[Tk]]: mechanizm [[Mechanizm sygnałów i slotów|sygnałów i slotów]], automatyczne rozmieszczanie [[widżet]]ów oraz zhierarchizowany system obsługi [[zdarzenie (informatyka)|zdarzeń]].
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 (język programowania)|Ada]] (QtAda), [[C Sharp|C#]] (Qyoto/Kimono, QtSharp), [[Pascal (język programowania)|Pascal]], [[Perl]] (Perl Qt4), [[PHP]] (PHP-Qt), [[Ruby (język programowania)|Ruby]] (QtRuby) i [[Python]] (PyQt, PySide). Charakteryzują się w pełni obiektową architekturą. Zawierają wiele technologii programowania graficznego interfejsu użytkownika, istniejących wcześniej jedynie w [[Tk]]: mechanizm [[Mechanizm sygnałów i slotów|sygnałów i slotów]], automatyczne rozmieszczanie [[widżet]]ów oraz zhierarchizowany system obsługi [[zdarzenie (informatyka)|zdarzeń]].


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ęzyka [[XML]], lokalizacji, [[wątek (informatyka)|wielowątkowości]], zaawansowanej obsługi napisów oraz [[wtyczka|wtyczek]]. Zawierają także własne, niezależne od biblioteki [[Standard Template Library|STL]] szablony klas pojemników.
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ęzyka [[XML]], lokalizacji, [[wątek (informatyka)|wielowątkowości]], zaawansowanej obsługi napisów oraz [[wtyczka|wtyczek]]. Zawierają także własne, niezależne od biblioteki [[Standard Template Library|STL]] szablony klas [[Kontener (programowanie)|kontenerów]].


W skład Qt wchodzi wiele specjalistycznych narzędzi programistycznych. Są to m.in.:
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),
* '''moc''' ({{K|en|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,
* '''uic''' ({{K|en|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 pliku <code>[[Make]]file</code> na podstawie prostego opisu zawartego w definicji projektu (<code>*.pro</code>),
* '''qmake''' program do zarządzania procesem kompilacji; jego głównym zadaniem jest utworzenie, a później aktualizacja pliku <code>[[Make]]file</code> na podstawie prostego opisu zawartego w definicji projektu (<code>*.pro</code>)
* '''Qt Designer''' - aplikacja graficzna do definiowania graficznego interfejsu użytkownika (okien dialogowych itp.),
* '''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 Linguist''' aplikacja wspomagająca tłumaczenie programu na różne języki
* '''Qt Assistant''' - aplikacja zawierająca rozbudowany system pomocy dla programistów.
* '''Qt Assistant''' aplikacja zawierająca rozbudowany system pomocy dla programistów
* '''[[Qt Creator]]''' - [[zintegrowane środowisko programistyczne]].
* '''[[Qt Creator]]''' [[zintegrowane środowisko programistyczne]]


== Historia ==
== Historia ==
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.
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 i [[Qt Development Frameworks]]. Inspiracją dla nazwy Qt była nazwa biblioteki [[Xt]] (''X Toolkit''), w której literę X zastąpiono literą Q (zdaniem twórców Qt, litera Q wyglądała najładniej jako [[przedrostek]] nazw klas w edytorze [[Emacs]])<ref>
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 i [[Qt Development Frameworks]]. Inspiracją dla nazwy Qt była nazwa biblioteki [[Xt]] (''X Toolkit''), w której literę X zastąpiono literą Q (zdaniem twórców Qt, litera Q wyglądała najładniej jako [[przedrostek]] nazw klas w edytorze [[Emacs]])<ref>{{cytuj |url = http://my.safaribooksonline.com/0131872494/pref04 |tytuł = C++ GUI Programming with Qt 4 |autor = J. Blanchette i M. Summerfield |data dostępu = 2016-01-23 |język = en |archiwum = https://web.archive.org/web/20190923193951/https://my.safaribooksonline.com/0131872494/pref04 |zarchiwizowano = 2019-09-23}}</ref>.
{{cytuj stronę | url=http://safari.oreilly.com/0131872494/pref04 | tytuł = ''C++ GUI Programming with Qt 4'' | autor = J. Blanchette i M. Summerfield | data dostępu = 6 sierpnia 2009| język = en}}
</ref>.


W 1995 firma otrzymała pierwszy kontrakt i zatrudniła pierwszego programistę. 20 maja 1995 na serwerze <code>sunsite.unc.edu</code> pojawiło się pierwsze oficjalne wydanie Qt – Qt 0.90. Mogło być ono używane do tworzenia aplikacji dla systemów [[Unix]] i [[Microsoft Windows|Windows]] na dwóch licencjach: komercyjnej (Windows, Linux) i wolnej (Linux). Do końca 1996 sprzedano łącznie 18 licencji dla 8 różnych firm.
W 1995 firma otrzymała pierwszy kontrakt i zatrudniła pierwszego programistę. 20 maja 1995 na serwerze <code>sunsite.unc.edu</code> pojawiło się pierwsze oficjalne wydanie Qt – Qt 0.90. Mogło być ono używane do tworzenia aplikacji dla systemów [[Unix]] i [[Microsoft Windows|Windows]] 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órcy [[KDE]] 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 systemu [[Linux]]. 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 licencji [[GNU General Public License|GPL]]. Doprowadziło to do zainicjowania dwóch projektów alternatywnych dla Qt: Harmony i [[GNOME]]. 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 1997 twórcy [[KDE]] 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 systemu [[Linux]]. 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 licencji [[GNU General Public License|GPL]]. Doprowadziło to do zainicjowania dwóch projektów alternatywnych dla Qt: Harmony i [[GNOME]]. 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 na ''Qtopia Core'' i ''Qt Extended'').
W 2000 Trolltech opublikował wersję Qt dla urządzeń wbudowanych – ''Qt/Embedded'' (przemianowaną później na ''Qtopia Core'' i ''Qt Extended'').


W 2001, wraz z opublikowaniem Qt 3.0, rozszerzono zakres platform systemowych obsługiwanych przez Qt o [[OS X|Mac OS X]].
W 2001, wraz z opublikowaniem Qt 3.0, rozszerzono zakres platform systemowych obsługiwanych przez Qt o [[OS X|Mac 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''<ref>{{cytuj stronę | url=http://qtwin.sourceforge.net/qt3-win32/history.php | tytuł = ''Q... Windows '' | data dostępu = 6 sierpnia 2009| język = en}}</ref>).
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''<ref>{{cytuj |url = http://qtwin.sourceforge.net/qt3-win32/history.php |tytuł = Q... Windows |data dostępu = 2009-08-06 |język = en}}</ref>).


W 2007 udostępniono wersję Qt dla języka [[Java]] (Qt Jambi).
W 2007 udostępniono wersję Qt dla języka [[Java]] (Qt Jambi).


W 2008 Trolltech został przejęty przez Nokię i zmienił nazwę na Qt Software, a od sierpnia 2009 na [[Qt Development Frameworks]]. W styczniu 2009 złagodzono politykę licencyjną (stosowana od wersji Qt 4.5 opcjonalna licencja [[GNU Lesser General Public License|LGPL]] praktycznie czyni z Qt bibliotekę darmową dla większości zastosowań komercyjnych).
W 2008 Trolltech został przejęty przez Nokię i zmienił nazwę na Qt Software, a od sierpnia 2009 na [[Qt Development Frameworks]]. W styczniu 2009 złagodzono politykę licencyjną (stosowana od wersji Qt 4.5 opcjonalna licencja [[GNU Lesser General Public License|LGPL]] praktycznie czyni z Qt bibliotekę darmową dla większości zastosowań komercyjnych).
W tym samym roku całkowicie wstrzymano rozwój Qt Jambi<ref>{{cytuj stronę | url=http://qt.nokia.com/about/news/preview-of-final-qt-jambi-release-available | tytuł = ''Qt Software to discontinue Qt Jambi after 4.5 release'' | data dostępu = 6 sierpnia 2009| język = en}}</ref> oraz zaprzestano rozwoju Qt Extended jako osobnej platformy, włączając część jej funkcji do głównej gałęzi Qt<ref>{{cytuj stronę | url=http://qt.nokia.com/about/news/qt-software-discontinues-qt-extended | tytuł = ''Qt Software discontinues Qt Extended'' | data dostępu = 6 sierpnia 2009| język = en}}</ref>.
W tym samym roku całkowicie wstrzymano rozwój Qt Jambi<ref>{{cytuj |url = http://web.archive.org/web/20120229081829/http://qt.nokia.com/about/news/preview-of-final-qt-jambi-release-available/ |tytuł = Qt Software to discontinue Qt Jambi after 4.5 release |data dostępu = 2018-04-23 |język = en}}</ref> oraz zaprzestano rozwoju Qt Extended jako osobnej platformy, włączając część jej funkcji do głównej gałęzi Qt<ref>{{cytuj |url = http://web.archive.org/web/20120820052701/http://qt.nokia.com/about/news/qt-software-discontinues-qt-extended |tytuł = Qt Software discontinues Qt Extended |data dostępu = 2018-04-23 |język = en}}</ref>.


W 2010 Nokia zapowiedziała użycie Qt jako głównej platformy programistycznej w nadchodzącym [[Symbian|Symbianie^4]] oraz systemie [[MeeGo]]. Wydano testowe wersje API do urządzeń mobilnych - Qt Mobility (zastępujące Qt Extended).
W 2010 Nokia zapowiedziała użycie Qt jako głównej platformy programistycznej w nadchodzącym [[Symbian|Symbianie^4]] oraz systemie [[MeeGo]]. 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 <ref>[http://www.digia.com/en/Home/Company/News/Digia-to-acquire-Qt-from-Nokia/ Digia to acquire Qt from Nokia<!-- Tytuł wygenerowany przez bota -->]</ref>, zapewniając przy okazji dalsze wsparcie i rozwój darmowej licencji i współpracę z projektem [[KDE]] oraz KDE Free Qt Foundation na rzecz otwartego i wolnego oprogramowania. <ref>[http://kdefamily.pl/2012/08/digia-kupuje-qt-od-nokii/ Digia kupuje Qt od Nokii | KDEFamily<!-- Tytuł wygenerowany przez bota -->]</ref>
W 2012 Digia kupiła od firmy Nokia framework Qt<ref>{{Cytuj stronę |url = https://www.businesswire.com/news/home/20120808006582/en/Digia-Acquire-Qt-Nokia |tytuł = Digia to acquire Qt from Nokia |nazwisko = |imię = |autor = |autor link = |data = 2012-08-09 |rok = |opublikowany = Business Wire |język = en |archiwum = |zarchiwizowano = |data dostępu = 2018-04-23}}</ref>, zapewniając przy okazji dalsze wsparcie i rozwój darmowej licencji i współpracę z projektem [[KDE]] oraz KDE Free Qt Foundation na rzecz otwartego i wolnego oprogramowania<ref>[http://kdefamily.pl/2012/08/digia-kupuje-qt-od-nokii/ Digia kupuje Qt od Nokii | KDEFamily].</ref>.


=== Główne wydania biblioteki ===
=== Główne wydania biblioteki ===
[[Plik:PyQt screen2.png|mały|Proste okno z przyciskiem]]
* Qt 1.0 – 24 września 1996
* Qt 2.0 – czerwiec 1999
* Qt 1.0 – 24 września 1996
* Qt 2.0 – czerwiec 1999
* Qt 3.0 – 2001
* Qt 3.0 – 2001
* Qt 4.0 – 28 czerwca 2005<ref>{{Cytuj |tytuł = Trolltech Releases Qt 4.0 |data = 2005-06-28 |data dostępu = 2023-12-13 |opublikowany = KDE.news |url = https://dot.kde.org/2005/06/28/trolltech-releases-qt-40 |język = en}}</ref>
* Qt 4.0 – 28 czerwca 2005
* Qt 5.0 – 19 grudnia 2012<ref>{{Cytuj |tytuł = Introducing Qt 5.0 |data dostępu = 2023-12-13 |opublikowany = www.qt.io |url = https://www.qt.io/blog/2012/12/19/qt-5-0 |język = en}}</ref>
* Qt 5.0 - 19 grudnia 2012
* Qt 6.0 – 8 grudnia 2020<ref>{{Cytuj |tytuł = Qt Platform 6.0 Released {{!}} Embedded Systems Development Platform {{!}} Qt |data dostępu = 2023-12-13 |opublikowany = www.qt.io |url = https://www.qt.io/blog/qt-6.0-released |język = en}}</ref>


== Qt 4 ==
== Qt 4 ==
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:
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 klas pojemników (m.in. <code>QList</code>, <code>QLinkedList</code>, <code>QVector</code>, <code>QStack</code>, <code>QQueue</code>, <code>QMap</code>, <code>QMultiMap</code>, <code>QHash</code>, <code>QMultiHash</code> i <code>QSet</code>).
* ''Tulip'' Zestaw szablonów klas [[Kontener (programowanie)|kontenerów]] (m.in. <code>QList</code>, <code>QLinkedList</code>, <code>QVector</code>, <code>QStack</code>, <code>QQueue</code>, <code>QMap</code>, <code>QMultiMap</code>, <code>QHash</code>, <code>QMultiHash</code> i <code>QSet</code>).
* ''Interview'' - Zestaw klas ułatwiających pisanie kodu zgodnie ze wzorcem [[Model-View-Controller|model-widok-kontroler]].
* ''Interview'' Zestaw klas ułatwiających pisanie kodu zgodnie ze wzorcem [[Model-View-Controller|model-widok-kontroler]].
* ''Arthur'' - Zestaw klas do grafiki dwuwymiarowej.
* ''Arthur'' Zestaw klas do grafiki dwuwymiarowej.
* ''Scribe'' - Zestaw klas do pozycjonowania i wyświetlania tekstu.
* ''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 typu [[Multi Document Interface|MDI]]) z menu, paskami narzędziowymi, skrótami klawiaturowymi, paskiem stanu itp.
* ''MainWindow'' Zestaw klas zawierających elementy niezbędne do tworzenia nowoczesnych okien głównych aplikacji (w tym aplikacji typu [[Multi Document Interface|MDI]]) z menu, paskami narzędziowymi, skrótami klawiaturowymi, paskiem stanu itp.
* Zupełnie nowa architektura programu Qt Designer.
* Zupełnie nowa architektura programu Qt Designer.


=== Wersje Qt 4 ===
=== Wersje Qt 4 ===
* 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.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 na [[Kaskadowe arkusze stylów|CSS]]), wprowadzono ułatwienia przy implementacji operacji ''undo'' ("cofnij") i uzupełniania kodu (''code completion'').
* 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 na [[Kaskadowe arkusze stylów|CSS]]), wprowadzono ułatwienia przy implementacji operacji ''undo'' („cofnij”) i uzupełniania kodu ({{K|en|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]] obsługujący język skryptowy zgodny ze standardem [[ECMAScript]], wprowadzono obsługę protokołów [[Transport Layer Security|SSL]] i [[HTTPS]].
* 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]] obsługujący język skryptowy zgodny ze standardem [[ECMAScript]], wprowadzono obsługę protokołów [[Transport Layer Security|SSL]] i [[HTTPS]].
* Qt 4.4 (6 maja 2008). Integracja z silnikiem [[WebKit]] (przeglądarka WWW), integracja z biblioteką [[Phonon]] (multimedia), obsługa platformy [[Windows CE]], obsługa standardu [[XQuery]] 1.0 i [[XPath]] 2.0 (język XML), nowy, uproszczony moduł dla aplikacji [[wielowątkowość|wielowątkowych]], zmodyfikowany system pomocy, integracja standardowych widżetów z modułem Graphics View.
* Qt 4.4 (6 maja 2008). Integracja z silnikiem [[WebKit]] (przeglądarka WWW), integracja z biblioteką [[Phonon]] (multimedia), obsługa platformy [[Windows CE]], obsługa standardu [[XQuery]] 1.0 i [[XPath]] 2.0 (język XML), nowy, uproszczony moduł dla aplikacji [[wielowątkowość|wielową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 programistyczne [[Qt Creator]]. Udostępniono Qt SDK zawierający pełną wersję biblioteki wraz z wszystkimi narzędziami deweloperskimi
* 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 programistyczne [[Qt 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.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.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 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 ==
== Qt 5 ==
[[Plik:Qt5 shadereffect.jpg|mały|Zaawansowane efekty dostępne od wersji 5.]]
Bieżąca wersja środowiska Qt ma numer główny 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.
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 ===
=== Licencje ===
Od wersji 4.5 na wszystkich platformach dostępne są trzy rodzaje licencji<ref>[http://qt-project.org/products/licensing Qt Licensing Qt - A cross-platform application and UI framework<!-- Tytuł wygenerowany przez bota -->]</ref>:
Od wersji 4.5 na wszystkich platformach dostępne są trzy rodzaje licencji<ref>{{Cytuj |url = http://qt-project.org/products/licensing |tytuł = Qt for developers by developers &#124; Cross-platform development |opublikowany = qt-project.org |język = en |data dostępu = 2017-11-26}}</ref>:
* [[GNU Lesser General Public License|LGPL]] 2.1
* [[GNU Lesser General Public License|LGPL]] 2.1 (Czerwiec 2020r LGPLv3)
* [[GNU General Public License|GPL]] 3.0
* [[GNU General Public License|GPL]] 3.0
* komercyjna (dostępna w firmie [[Digia]])
* komercyjna (dostępna w firmie [[Digia]])

== Wykorzystanie Qt ==
W 2017 roku firma Qt Development Frameworks oszacowała społeczność około 1 miliona programistów<ref>{{Cytuj |tytuł = QT GROUP OYJ Managers’ Transactions |data dostępu = 2021-03-08 |opublikowany = qt.io |url = https://www.qt.io/stock/qt-group-oyj-managers-transactions-1491998400000 |język = en}}</ref> działająca na całym świecie w 70 branżach<ref>{{Cytuj |autor = Rotem Shneor |tytuł = Handbook of Research on Born Globals, Chapter 10: Born Global Firms, Internet, and New Forms of Internationalization. |data = 2012 |isbn = 9780857938046}}</ref>.

Organizacje wykorzystujące Qt:

* [[Advanced Micro Devices|AMD]]<ref>{{Cytuj |tytuł = Qt Newsroom {{!}} Qt |data dostępu = 2021-03-08 |opublikowany = qt.io |url = https://www.qt.io/newsroom |język = en}}</ref>
* [[BMW]]<ref>{{Cytuj odcinek |tytuł = Qt Creator as BMW Car IT Automotive IDE, BMW Car IT |url = https://resources.qt.io/customer-stories-automotive/qtws16-qt-creator-as-bmw-car-it-automotive-ide-helio-chissini-de-castro-bmw-car-it |data dostępu = 2021-03-08}}</ref>
* [[Crytek]]<ref>{{Cytuj |tytuł = CRYENGINE {{!}} An update on our Sandbox interface and the Legacy Editor |data dostępu = 2021-03-08 |opublikowany = CRYENGINE |url = https://www.cryengine.com/news/view/an-update-on-our-sandbox-interface-and-the-legacy-editor |język = en}}</ref>
* [[LG Group|LG]]<ref>{{Cytuj |autor = Jon Porter |tytuł = LG tries to bring webOS to cars, robots, and the smart home with new partnership |data = 2019-06-26 |data dostępu = 2021-03-08 |opublikowany = The Verge |url = https://www.theverge.com/2019/6/26/18759414/lg-qt-partnership-webos-cars-automotive-robots-smart-home-devices |język = en}}</ref>
* [[Microsoft]]<ref>{{Cytuj |tytuł = How to transition your existing, native mobile applications to using a common, Qt-based core « Qt World Summit 2016 |data dostępu = 2021-03-08 |url = http://www.qtworldsummit.com/2016/sessions/how-to-transition-your-existing-native-mobile-applications-to-using-a-common-qt-based-core/ |język = en}}</ref>
* [[Samsung]]
* [[Siemens]]
* [[Tesla (amerykańskie przedsiębiorstwo)|Tesla]]<ref>{{Cytuj |autor = Fred Lambert |tytuł = Tesla releases some of its software to comply with open source licences |data = 2018-05-19 |data dostępu = 2021-03-08 |opublikowany = Electrek |url = https://electrek.co/2018/05/19/tesla-releases-softwar-open-source-licences/ |język = en}}</ref>
* [[Volvo Car Corporation|Volvo]]
* [[Valve Corporation|Valve]]<ref>{{Cytuj |tytuł = Qt Tutorial #1: Wstęp – kilka słów o bibliotece Qt. |data = 2016-07-10 |data dostępu = 2021-03-08 |opublikowany = DevCode.pl |url = https://devcode.pl/qt-biblioteka-qt/ |język = pl}}</ref>


== Zobacz też ==
== Zobacz też ==
Linia 103: Linia 118:
* [[Ultimate++]]
* [[Ultimate++]]


== Przypisy ==
{{przypisy}}
{{Przypisy}}


== Linki zewnętrzne ==
== Linki zewnętrzne ==
{{commonscat|Qt}}
* [http://qt.nokia.com/ Strona firmy Qt Development Frameworks] {{lang|en}}
* {{Cytuj stronę |url = http://qt.nokia.com/ |tytuł = Strona firmy Qt Development Frameworks |opublikowany = qt.nokia.com |archiwum = https://web.archive.org/web/20121226190411/http://qt.nokia.com/ |zarchiwizowano = 2012-12-26 |język = en}}
* [http://doc.trolltech.com/ Szczegółowa dokumentacja] {{lang|en}}
* [http://doc.trolltech.com/ Szczegółowa dokumentacja] {{lang|en}}
* [http://www.qtcentre.org/ Strona społeczności i forum dyskusyjne] {{lang|en}}
* [http://www.qtcentre.org/ Strona społeczności i forum dyskusyjne] {{lang|en}}
* [[b:Programowanie_C++_Qt4_w_systemie_Gnu-Linux|Kurs QT na WikiBooks]] {{lang|pl}}
* [[b:Programowanie C++ Qt4 w systemie Gnu-Linux|Kurs QT na WikiBooks]] {{lang|pl}}
* Alan Ezust, Paul Ezust, [http://cartan.cas.suffolk.edu/oopdocbook/opensource/index.html ''An Introduction to Design Patterns in C++ with Qt4''] {{lang|en}}. Wydawnictwo Prentice Hall, 2008, ISBN 0131879057, wersja Open Source.
* Alan Ezust, Paul Ezust, [http://cartan.cas.suffolk.edu/oopdocbook/opensource/index.html ''An Introduction to Design Patterns in C++ with Qt4''] {{lang|en}}. Wydawnictwo Prentice Hall, 2008, {{ISBN|0131879057}}, wersja Open Source.
{{KDE}}
{{KDE}}


Linia 119: Linia 136:
[[Kategoria:Oprogramowanie na licencji GNU LGPL]]
[[Kategoria:Oprogramowanie na licencji GNU LGPL]]
[[Kategoria:Nokia]]
[[Kategoria:Nokia]]
[[Kategoria:C++]]
[[Kategoria:Biblioteki C++]]
[[Kategoria:Java]]
[[Kategoria:Biblioteki Javy]]
[[Kategoria:Frameworki]]
[[Kategoria:Frameworki]]

Aktualna wersja na dzień 19:57, 20 lip 2024

Qt
Logo Qt
Logo programu
Ilustracja
Zrzut ekranu programu Qt Designer
Autor Qt Development Frameworks
Pierwsze wydanie 1992
Aktualna wersja stabilna 6.7.2
(19 czerwca 2024) [±]
Aktualna wersja testowa 6.7 Beta 1
(20 grudnia 2023) [±]
System operacyjny GNU/Linux, BSD, Solaris, Unix, Mac OS X, Haiku, MS Windows, Symbian, Windows CE, Embedded linux, Amiga OS
Rodzaj biblioteki programistyczne
Licencja LGPL (v. 2.1), GPL (v. 3.0), komercyjna
Strona internetowa

Qt – zestaw przenośnych bibliotek i narzędzi programistycznych przeznaczonych dla języków C++, QML i Java. Ich podstawowym składnikiem są klasy służące do budowy graficznego interfejsu programó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ów Open Source należą m.in. firmy Digia, KDAB, ICS. Digia jest właścicielem praw do komercyjnej wersji Qt oraz do znaków towarowych, po zakupie od firmy Nokia (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 dla urządzeń wbudowanych opartych na Linuksie (Qt Extended), Windows CE, Symbian, Android. Qt jest podstawą m.in. dla uniksowego środowiska graficznego KDE oraz uniksowych wersji komunikatora internetowego Skype[2] i programu Google 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) i Python (PyQt, PySide). Charakteryzują się w pełni obiektową architekturą. Zawierają wiele technologii programowania graficznego interfejsu użytkownika, istniejących wcześniej jedynie w Tk: mechanizm sygnałów i slotów, automatyczne rozmieszczanie widżetów oraz zhierarchizowany system obsługi zdarzeń.

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ęzyka XML, lokalizacji, wielowątkowości, zaawansowanej obsługi napisów oraz wtyczek. Zawierają także własne, niezależne od biblioteki STL szablony klas konteneró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 pliku Makefile 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 i Qt Development Frameworks. Inspiracją dla nazwy Qt była nazwa biblioteki Xt (X Toolkit), w której literę X zastąpiono literą Q (zdaniem twórców Qt, litera Q wyglądała najładniej jako przedrostek nazw klas w edytorze Emacs)[3].

W 1995 firma otrzymała pierwszy kontrakt i zatrudniła pierwszego programistę. 20 maja 1995 na serwerze sunsite.unc.edu pojawiło się pierwsze oficjalne wydanie Qt – Qt 0.90. Mogło być ono używane do tworzenia aplikacji dla systemów Unix i Windows 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órcy KDE 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 systemu Linux. 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 licencji GPL. Doprowadziło to do zainicjowania dwóch projektów alternatywnych dla Qt: Harmony i GNOME. 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 na Qtopia Core i Qt Extended).

W 2001, wraz z opublikowaniem Qt 3.0, rozszerzono zakres platform systemowych obsługiwanych przez Qt o Mac 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ęzyka Java (Qt Jambi).

W 2008 Trolltech został przejęty przez Nokię i zmienił nazwę na Qt Software, a od sierpnia 2009 na Qt Development Frameworks. W styczniu 2009 złagodzono politykę licencyjną (stosowana od wersji Qt 4.5 opcjonalna licencja LGPL 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ącym Symbianie^4 oraz systemie MeeGo. 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 projektem KDE 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 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 klas kontenerów (m.in. QList, QLinkedList, QVector, QStack, QQueue, QMap, QMultiMap, QHash, QMultiHash i QSet).
  • Interview – Zestaw klas ułatwiających pisanie kodu zgodnie ze wzorcem model-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 typu MDI) 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 na CSS), wprowadzono ułatwienia przy implementacji operacji undo („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 obsługujący język skryptowy zgodny ze standardem ECMAScript, wprowadzono obsługę protokołów SSL i HTTPS.
  • Qt 4.4 (6 maja 2008). Integracja z silnikiem WebKit (przeglądarka WWW), integracja z biblioteką Phonon (multimedia), obsługa platformy Windows CE, obsługa standardu XQuery 1.0 i XPath 2.0 (język XML), nowy, uproszczony moduł dla aplikacji wielową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 programistyczne Qt 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.
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 firmie Digia)

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 z adresu 2009-08-17] (ang.).
  3. J. Blanchette i M. Summerfield, C++ GUI Programming with Qt 4 [online] [dostęp 2016-01-23] [zarchiwizowane z adresu 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 z adresu 2012-02-29] (ang.).
  6. Qt Software discontinues Qt Extended [online] [dostęp 2018-04-23] [zarchiwizowane z adresu 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. Rotem Shneor, 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. Jon Porter, 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. Fred Lambert, 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]