Uwaga! Informacje na tej stronie mają ponad 6 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.
Thu 12 Mar2009
Biblioteka Qt to jedna z bibliotek do tworzenia GUI. Choć kojarzy się z Linuksem, jest przenośna i działa także na Windows. Rozwijana wcześniej przez firmę Trolltech (swoją drogą, fajna nazwa ;) teraz została wykupiona przez Nokię. W tym roku jej wersja 4.5 stała się dostępna dla Windows na licencji GNU LGPL. Dzięki temu Qt można wykorzystać w dowolnych programach, także komercyjnych. W ten sposób dołącza do grona bibliotek, które pozwalają wygodnie robić okienka w C++. Używałem niejednej takiej biblioteki, a Qt uczyłem się na studiach i mogę chyba powiedzieć, że moim zdaniem Qt staje się teraz najlepszą z nich (deklasując wxWidgets, GTK, MFC i oczywiście czyste WinAPI). Chodzi mi tu nie tylko o możliwości, ale i o jej piękne, obiektowe API.
API do komunikacji sieciowej - sockety plus protokół HTTP i FTP oraz SSL.
API do obsługi plików.
Własna klasa łańcucha i kontenery (w tym mapa haszująca).
Własny mechanizm RTTI oraz własny mechanizm wskaźników na metody (tzw. sygnały i sloty).
Zestaw kontrolek GUI, które na Windows używają kontrolek systemowych.
Zaawansowane kontrolki - lista, drzewo i tabela. Drzewo również może mieć kolumny, a każda z tych kontrolek może pobierać dane z osobno dostarczonego modelu. (Brakuje tylko chyba Property Grid, chociaż w Qt Designer jakiś mają - jak go zrobić w swoim programie??)
Własna, rozszerzalna kontrolka do edycji tekstu formatowanego, własna przeglądarka HTML-a.
Okienka można tworzyć w kodzie lub projektować w Qt Designer.
API do grafiki, tj. funkcje do rysowania 2D, drukowania, a także obsługa grafiki wektorowej SVG i jakieś połączenie z OpenGL (a co ze współpracą z DirectX??)
Obsługa obrazków w różnych formatach graficznych i ikonek, łącznie z kanałem alfa.
Obsługa multimediów z użyciem Phonon.
Połączenia do różnego rodzaju baz danych (w tym MySQL, PosgreSQL, SQLite, Microsoft, Oracle).
Własny język skryptowy QtScript, zgodny z ECMAScript (tzn. ma składnię taką jak JavaScript).
Qt Creator - kompletne IDE do C++ zorientowane pod Qt.
Własny mechanizm plików pomocy z wygodną przeglądarką.
Integracja z Visual Studio i Eclipse.
Internacjonalizacja (obsługuje Unicode), do robienia tłumaczeń służy Qt Linguist.
Niestety Qt ma też wady:
Używanie Qt znacznie komplikuje proces budowania programu. Ułożone okienka z plików ui i zasoby z plików qrc trzeba przetwarzać na pliki cpp/h. Swoje zwykłe źródła też trzeba przetwarzać dodatkowym preprocesorem moc, bo tego wymaga mechanizm sygnałów i slotów (nie mogli tego zrobić jak MFC albo wxWidgets?...)
Rozmiar: Po skompilowaniu ze źródeł zajmuje 10 GB. Po wyczyszczeniu z plików tymczasowych - 1.7 GB. Pliki DLL, które trzeba dołączać do swoich programów, zajmują kilka MB.
Nie da się łatwo przygotować jej tak, żeby bibliotekę standardową C linkowała statycznie zamiast wymagać MSVCcośtam.DLL, którego użytkownicy często nie mają w systemie.
Problemy z instalacją - o tym w następnym odcinku...