Zamknięte . To pytanie jest
oparte na opiniach . Obecnie nie przyjmuje odpowiedzi.
Komentarze
Odpowiedź
Naprawdę nie zamierzam, aby to była brzydka odpowiedź, ale to są powody, dla których to robię nie używaj osobiście Qt. Jest wiele dobrych rzeczy do powiedzenia na ten temat – mianowicie, że API działa przez większość czasu i że działa bezproblemowo na platformach mostowych. Ale nie używam Qt, ponieważ:
- W niektórych przypadkach po prostu nie wygląda to jak programy natywne. Zaprojektowanie pojedynczego interfejsu użytkownika dla wszystkich platform z natury nie będzie wyglądać dobrze po przeniesieniu z maszyny na maszynę, z różnych powodów wizualnych. Na przykład na komputerach Mac podzielone paski są zwykle stosunkowo grube, a przyciski są małe i zaokrąglone z ikonami. Na komputerach z systemem Windows podzielone paski są zwykle wąskie, a przyciski są bardziej tekstowe i mają bardziej kwadratowe wzory. To, że możesz napisać jeden interfejs użytkownika dla każdej platformy, nie oznacza, że powinieneś to zrobić w przypadku większości aplikacji.
- Qt to nie tylko zestaw bibliotek C ++ z możliwością łączenia. Używany system kompilacji wymaga tłumaczenia niektórych plików na dodatkowe pliki źródłowe, co sprawia, że proces budowania jest znacznie bardziej skomplikowany w porównaniu z większością innych bibliotek.
- W wyniku (2), C ++ IDE i narzędzia mogą oznaczać wyrażenia Qt jako błędy, ponieważ nie rozumieją one specyfiki Qt. To prawie wymusza użycie QtCreator lub edytora tekstowego, takiego jak
vim
.
- Qt to duża ilość źródeł, które muszą być obecne i preinstalowane na każdym komputerze, którego używasz przed kompilacją. Może to znacznie utrudnić konfigurowanie środowiska kompilacji.
- Części są w większości licencjonowane w ramach licencji LGPL, co sprawia, że trudno jest używać pojedynczego wdrożenia binarnego, gdy trzeba wydać na bardziej restrykcyjnej lub mniej restrykcyjnej licencji.
- Tworzy bardzo duże skompilowane pliki binarne w porównaniu z podobnie napisanymi " plain ol „aplikacje natywne " (z wyjątkiem pisania aplikacji kursu dziesięć dla KDE).
Komentarze
Odpowiedź
Jak mówią ludzie, każde narzędzie pasuje do każdego problemu i sytuacji …
Ale jeśli jesteś programistą C ++, Qt jest twoim frameworkiem. Żaden rywal.
Tworzymy złożoną komercyjną aplikację do obrazowania medycznego i Qt to trzyma.
Nie mówię, że „wady”, które ludzie mówią na ten temat są fałszywe, ale mam wrażenie, że nie próbowali Qt przez długi czas (jego ciągłe ulepszanie z każdą nową wersją …) I głównie wszystkie problemy, które komentują nie stanowią problemu, jeśli będziesz uważać.
Niespójność platformy interfejsu użytkownika: tylko wtedy, gdy używasz widżetów interfejsu użytkownika „takimi, jakimi są”, bez dostosowywania lub niestandardowej grafiki.
Przeciążenie preprocesora Qt : Tylko jeśli nadużywasz mechanizmu slotu sygnałowego lub dziedziczenia QObject, kiedy nie ma takiej potrzeby.
Nawiasem mówiąc, nadal piszemy aplikacje w C # .NET i byliśmy robię to przez długi czas. Myślę więc, że mam wystarczającą perspektywę.
Jak powiedziałem, każde narzędzie dla każdej sytuacji,
ale Qt jest bez wątpienia spójnym i użytecznym szkieletem.
Komentarze
Odpowiedź
Ze wszystkich rzeczy, których nie lubię w Qt, Fakt, że nie współgra dobrze z szablonami, najbardziej mnie wkurza. Nie możesz tego zrobić:
template < typename T > struct templated_widget : QWidget { Q_OBJECT; public signals: void something_happened(T); };
Nie współpracuje też dobrze z preprocesorem. Nie możesz tego zrobić:
#define CREATE_WIDGET(name,type) \ struct name ## _widget : QWidget \ { \ Q_OBJECT; \ \ public signals: \ void something_happened(type); \ }
To, w połączeniu z faktem, że wszystko, co odpowiada na sygnał, musi być Q_OBJECT, utrudnia pracę Qt w dla programisty C ++. Ludzie przyzwyczajeni do programowania w stylu Java lub Python prawdopodobnie są w rzeczywistości całkiem lepsi.
Właściwie poświęciłem dużo czasu i wysiłku na badanie i wymyślanie sposobu na odzyskanie bezpieczeństwa typu i połączenie sygnału Qt z dowolnym obiektem funktora: http://crazyeddiecpp.blogspot.com/2011/01/quest-for-sane-signals-in-qt-step-1.html
To, co chcę robić, to podstawowy, codzienny programowanie w C ++, które jest prawie niemożliwe przez moc Qt … która sama w sobie jest teraz całkowicie niepotrzebne, jeśli kiedykolwiek tak było.
Szczerze mówiąc, utknąłem z tym, ponieważ jeśli chcesz przeprowadzić automatyczne testowanie interfejsu użytkownika, Qt jest właściwie jedyną grą w mieście poza MFC. … co jest tak 1980 rokiem (ciężka praca w tym gównie jest do dupy) Niektórzy mogą powiedzieć, że WX, ale ma jeszcze poważniejsze problemy. GTKmm byłby moim pierwszym wyborem, ale ponieważ to wszystko jest narysowane przez właściciela i nie ma dostępu do … nie może być sterowane przez standardowe oprogramowanie testujące. Qt jest wystarczająco trudne pod tym względem ( ledwo działa po zmodyfikowaniu wtyczki ułatwień dostępu).
Komentarze
Answer
Jednym z powodów, aby nie używać Qt jest to, że jeśli piszesz tylko dla jednej architektury, takiej jak Windows, możesz chcieć użyć C # / .NET (lub Cocoa na Macu), ponieważ zawsze będą one móc korzystać z najnowszych dzwonków i gwizdków systemu operacyjnego.
Jeśli piszesz aplikacje wieloplatformowe, być może już jesteś mocno przywiązany do innej technologii, takiej jak Java (tj. pracujesz w „sklepie Java”). Twój wybór technologii może być podyktowany ekosystemem, w którym tworzysz, na przykład interfejsami API specyficznymi dla języka. W tego rodzaju przypadkach minimalizacja liczby technologii może być korzystna.
Trzecim powodem, który przychodzi mi do głowy, jest to, że Qt opiera się na C ++, a C ++ jest stosunkowo trudnym / niebezpiecznym językiem do programowania Myślę, że to język dla profesjonalistów. Jeśli potrzebujesz najwyższej wydajności i potrafisz być drobiazgowy, C ++ jest prawdopodobnie nadal najlepszą grą w mieście. W rzeczywistości Qt łagodzi wiele problemów związanych z zarządzaniem pamięcią, jeśli ustawisz coś poza zakresem. Ponadto samo Qt wykonuje dobrą robotę izolując użytkownika od wielu nieprzyjemnych problemów z C ++. Każdy język i struktura ma swoje wady i zalety. Jest to bardzo, bardzo skomplikowana kwestia, którą zwykle można podsumować dodatkami często spotykanymi w restauracjach: szybkość, jakość i cena (ale możesz wybrać tylko dwie).
Chociaż zasady mówią, że powinienem zachować skupiając się na odpowiedzi na pytanie, chcę odrzucić niektóre kwestie poruszone przez Billyego ONeala, który moim zdaniem wykonuje dobrą robotę, podsumowując często przytaczane powody nieużywania Qt:
-
Qt jest rzeczywiście biblioteką / strukturą / plikami nagłówkowymi C ++. Jest uzupełniony przez makroprocesor (moc), który umożliwia między innymi sygnały i sloty. Przekształca dodatkowe makropolecenia (takie jak Q_OBJECT), dzięki czemu klasy mają introspekcję i wszelkiego rodzaju inne dodatki, które można by pomyśleć jako dodawanie funkcji Objective-C do C ++. Jeśli wiesz wystarczająco dużo o C ++, aby obrazić się tym brakiem czystości, tj.jesteś profesjonalistą, a następnie 1) nie używaj Q_OBJECT i im podobnych lub 2) bądź wdzięczny, że to robi, i programuj w bardzo ograniczonych przypadkach, w których powoduje to problem. Dla osób, które mówią „Użyj wzmocnienia dla sygnałów i slots! ”, wtedy odpowiedziałbym, że wymieniasz jeden„ problem ”na inny. Boost jest ogromny i ma swoje własne często cytowane problemy, takie jak słaba dokumentacja, przerażające API i horrory międzyplatformowe (pomyśl o starych kompilatorach, takich jak 3.3 i duże kompilatory żelaza, takie jak AIX).
-
Jeśli chodzi o obsługę edytorów, to również wynika z 1, trochę się zgadzam. Właściwie Qt Creator jest IMHO najlepszym graficznym edytorem C ++, kropka , nawet jeśli nie używasz rzeczy z Qt. Wielu profesjonalnych programistów używa emacsa i vima. Myślę też, że Eclipse obsługuje dodatkową składnię. Dzięki temu nie ma problemów z makrami Qt (Q_OBJECT) lub dodatkami sygnałów / slotów. Prawdopodobnie nie znajdziesz tych makr w Visual Studio, ponieważ (przyznaję) są one dodatkami do C ++. Ale ogólnie rzecz biorąc, ludzie C # / .NET i tak nie będą używać Qt, ze względu na fakt, że mają wiele funkcji objętych własnymi zastrzeżonymi technikami.
-
Jeśli chodzi o rozmiar źródła Qt, o ile kompiluje się ono z dnia na dzień, kogo to obchodzi? Skompilowałem Qt 4 na moim dwurdzeniowym Macbooku w „mniej niż z dnia na dzień”. Mam nadzieję, że nie to jest przyczyną Twojej decyzji używać lub nie używać określonej technologii. Jeśli jest to naprawdę problem, możesz pobrać wstępnie skompilowane zestawy SDK dla systemów Mac, Linux i Windows z witryny Qt.
-
Licencjonowanie jest dostępne w trzech opcjach: 1) Licencja prawnie zastrzeżona na wypadek, gdybyś chciał zmodyfikować Qt SIEBIE i nie udostępniać lub ukrywać fakt, że ktoś używa Qt i nie chce podawać źródła (może to być bardzo ważne dla budowania marki i obraz!) 2) GPL i 3) LGPL. Tak, są problemy z linkowaniem statycznym (przenoszeniem całego Qt do pliku binarnego) – ale myślę, że to więcej, ponieważ nie można zajrzeć do środka i zauważyć, że u śpiewaj Qt (atrybucja!). Próbowałem kupić zastrzeżoną licencję od Digia i powiedzieli mi, że „do tego, co robisz, naprawdę tego nie potrzebujesz”. Wow. Z firmy zajmującej się sprzedażą licencji.
-
Rozmiar pliku binarnego / pakietu wynika z tego, że musisz rozprowadzać zawartość Qt do osób, które go nie mają: Windows już ma? rzeczy Visual Studio lub musisz zainstalować środowisko wykonawcze. Mac jest już wyposażony w ogromne kakao i można go dynamicznie łączyć. Chociaż nie zajmuję się zbyt dużą dystrybucją, nigdy nie znalazłem dużego problemu z dystrybucją ~ 50-megabajtowego pliku statycznego (który mogę zrobić jeszcze mniejszym za pomocą niektórych binarnych narzędzi do usuwania / kompresji, takich jak UPX). Po prostu nie bacząc na to, by to zrobić, ale jeśli przepustowość byłaby kiedykolwiek problemem, dodałbym krok UPX do mojego skryptu kompilacji.
-
Co definiuje „Native Look and Feel”? Myślę, że „większość” zgodziłaby się, że Mac jest najbardziej zbliżony do ujednoliconego wyglądu i stylu. Ale tutaj siedzę, patrząc na Safari, iTunes, Aperture, Final Cut Pro, Pages itp. I nie wyglądają podobnie, mimo że są wykonane przez sprzedawcę systemu operacyjnego. Myślę, że aspekt „czucia” jest bardziej odpowiedni: styl widżetów, responsywność itp. Jeśli zależy Ci na responsywności, to tutaj jest dobry powód, aby używać C ++ zamiast Javy lub innego wysoce dynamicznego języka. (Cel C również rządzi, ale staram się rozwiać mity na temat Qt)
Podsumowując, jest to skomplikowana sprawa. Chciałbym jednak zaznaczyć, że moim zdaniem jest mniej powodów, aby „nie używać Qt”, jak można by pomyśleć na podstawie mitów i nieaktualnych informacji o dekadzie.
Komentarze
Odpowiedź
Część z nich dotyczy licencji. Zobacz https://en.wikipedia.org/wiki/Qt_(software) #Licensing , aby zapoznać się z częścią historii licencjonowania. Do 2000 roku ludzie, którym bardzo zależało na open source, nie używali Qt. Kropka. (W rzeczywistości była to pierwotna motywacja do rozwoju Gnome.) Do 2005 roku ludzie, którzy chcieli mieć możliwość wydawania wolnego oprogramowania dla systemu Windows, nie używali Qt.Nawet po tej dacie ludzie, którzy chcieli wolnego oprogramowania na czymś innym niż GPL, po prostu nie mieli opcji używania Qt. Zatem żaden projekt wolnego oprogramowania, który jest starszy niż te daty, nie mógł używać Qt. I, oczywiście, ludzie piszący zastrzeżony kod musieli zapłacić za ten przywilej.
Ponadto nie jest tak, jakby istniał brak innych opcji. Na przykład WxWidgets , GTK + i Tk to open source, wieloplatformowe zestawy narzędzi.
Ponadto przez długi czas Windows był tak dominujący na pulpicie, że wiele programów mogło działać tylko w systemie Windows. Jeśli zainstalujesz łańcuch narzędzi firmy Microsoft, łatwiej jest po prostu użyć zastrzeżonych elementów firmy Microsoft, niż martwić się o cokolwiek innego, a wielu programistów właśnie to zrobiło.
Komentarze
Odpowiedź
Zgadzam się z prawie wszystkimi powodami omówionymi powyżej, jednak wiele osób tutaj twierdzi, że nie użyje Qt z powodu dodatkowego narzutu, jaki wiąże się z tym. Nie zgadzam się z tym, ponieważ wszystkie najpopularniejsze obecnie języki (Java, C # i Python) same niosą ze sobą sporo narzutów.
Po drugie, Qt sprawia, że programowanie w C ++ jest tak łatwe i nieskomplikowane, że nadrabia dodatkowe zasoby, z których korzysta. Natknąłem się na całkiem sporo aplikacji konsolowych napisanych w Qt zamiast standardowego C ++ ze względu na łatwość, z jaką można je pisać.
Powiedziałbym, że produktywność Qt jest większa niż C / C ++, ale mniejsza niż języków takich jak Python.
Komentarze
Odpowiedź
To naprawdę nie jest próba rozpoczęcia wojny o płomienie, chciałem tylko odnieść się do niektórych punktów.
Prawdopodobnie prawdziwym powodem, dla którego Qt nie jest szerzej używany, jest to, że jest to C ++ i mniej osób używa C ++ w aplikacjach komputerowych.
Qt nie jest biblioteką C ++. Wymaga osobnego kroku kompilacji, co znacznie komplikuje proces budowania w porównaniu z większością innych bibliotek.
vs-addin dla Visual Studio robi to automatycznie, podobnie jak własny proces tworzenia linii poleceń Qt. Kompilator zasobów użyty do zbudowania okien dialogowych dla MFC jest również oddzielnym krokiem, ale to nadal jest c ++.
Qt to duża ilość źródeł, które musi być obecny i wstępnie zainstalowany na każdym komputerze, którego używasz przed kompilacją. Może to znacznie utrudnić konfigurowanie środowiska kompilacji.
Istnieje możliwość pobrania pliku binarnego dla każda wersja programu Visual Studio i kompilacja ze źródeł to jedno polecenie. Nie widzę w dzisiejszych czasach tak dużego problemu z wielkością źródła SDK. Program Visual Studio instaluje teraz wszystkie biblioteki C ++ zamiast pozwalać Ci wybierać i wybierać, w wyniku czego rozmiar instalacji kompilatora wynosi> 1 GB.
It ” są dostępne tylko na licencji LGPL, co utrudnia użycie pojedynczego wdrożenia binarnego, gdy trzeba wydać na bardziej restrykcyjnej lub mniej restrykcyjnej licencji.
Licencja LGPL dotyczy tylko biblioteki, nie ma ona wpływu na Twój kod. Tak, oznacza to, że musisz wysyłać biblioteki DLL, a nie pojedynczy plik binarny (chyba że płacisz), ale w świecie, w którym musisz pobrać środowisko wykonawcze Java lub aktualizację .Net dla małego urządzenia, nie jest to taka wielka sprawa. „jest również mniejszym problemem na platformach z pojedynczym interfejsem ABI, dzięki czemu inne aplikacje Qt mogą współużytkować biblioteki.
W niektórych przypadkach po prostu to nie działa.” wyglądają jak programy natywne.Zaprojektowanie pojedynczego interfejsu użytkownika dla wszystkich platform z natury nie będzie wyglądać dobrze po przeniesieniu z maszyny na komputer z różnych powodów związanych ze stylem wizualnym.
Przypuszcza się, że aby używać natywnych widżetów i motywów Muszę przyznać, że robię głównie aplikacje techniczne, więc moi użytkownicy nie przejmują się zbytnio stylem. Zwłaszcza w systemie Windows nowa moda na stylizowanie wszystkiego na widżet smartfona oznacza, że i tak jest coraz mniej standardu.
Komentarze
Odpowiedź
Powód jest prosty: nie ma dobrych powiązań ze wszystkimi głównymi językami i nie jest to magiczne zawsze odpowiednie do wykonywanej pracy.
Używaj odpowiedniego narzędzia do pracy. Jeśli piszę prostą aplikację wiersza poleceń, dlaczego miałbym nadużywać tego za pomocą Qt tylko ze względu na to?
Jako bardziej ogólną odpowiedź (którą mogę podać, ponieważ mam tu znaczenie ), niektórzy programiści po prostu nigdy nie chcieli go wypróbować i zdecydowali się go użyć. W niektórych przypadkach nie ma żadnego konkretnego powodu poza tym, że programista nigdy nie znalazł takiej potrzeby i nie sprawdził tego.
Komentarze
Odpowiedź
Struktury takie jak Qt są odpowiednie, gdy bardziej zależy Ci na wyglądzie produktu tak samo na wszystkich platformach, jak w przypadku, gdy Twój produkt wygląda dobrze na wszystkich platformach. Obecnie coraz częściej tego rodzaju aplikacje przechodzą na technologie internetowe.
Odpowiedź
Moim zdaniem nauka programowania w C ++ jest prostsza niż wpadanie w inne języki, które ukrywają swoją złożoność, a programista nie wie co naprawdę dzieje się w tle. Z drugiej strony Qt dodaje pewne korzyści w stosunku do C ++, dzięki czemu jest wyższy niż natywny C ++. Dlatego Qt C ++ jest świetnym frameworkiem dla tych, którzy chcą tworzyć zadania niskiego poziomu lub zadania wysokiego poziomu w ten sam sposób. C ++ jest (według niektórych praktyk) złożonym i prostym językiem. Złożony dla tego, kto nie chce się z tym mierzyć, prosty dla tego, kto to lubi.Nie zostawiaj tego ze względu na złożoność!
Odpowiedź
Zgadzam się, że Qt to fajny framework do pracy. Mimo to mam z nim kilka problemów:
- Jest napisany w C ++, który jest językiem bardzo niskiego poziomu. Sam fakt, że jest to C ++, sprawi, że każdy programista Qt będzie znacznie mniej produktywny w porównaniu z frameworkami napisanymi w innych językach. Moją główną zaletą C ++ jako języka programowania GUI jest to, że nie ma on pojęcia automatycznego zarządzania pamięcią, co sprawia, że proces programowania jest znacznie bardziej podatny na błędy. Nie jest introspektywny, co znacznie utrudnia debugowanie. Większość innych głównych zestawów narzędzi GUI ma pewne pojęcie o automatycznym zarządzaniu pamięcią i introspekcji.
- Każdy wieloplatformowy zestaw narzędzi cierpi na problem polegający na tym, że może zaimplementować tylko najmniej wspólny mianownik ze wszystkich obsługiwanych platform. To i różne wytyczne dotyczące interfejsu użytkownika na różnych platformach w dużym stopniu kwestionują użyteczność wieloplatformowych interfejsów GUI w ogóle.
- Qt jest bardzo skoncentrowany na kodowaniu całego interfejsu użytkownika. Mimo że możesz użyć QtDesigner do zbudowania niektórych części swojego interfejsu użytkownika, poważnie brakuje mu w porównaniu, powiedzmy, (Cocoa / Obj-C) Interface Builder lub narzędziami .Net.
- Mimo że Qt zawiera wiele funkcji aplikacji niskiego poziomu, nie może się równać z posiadaniem frameworka dostosowanego ręcznie do określonej platformy. Natywne biblioteki systemu operacyjnego zarówno dla Windows, jak i OSX są znacznie bardziej wydajne niż implementacje Qt. (Pomyśl o strukturach audio, dostępie do systemu plików niskiego poziomu itp.)
To powiedziawszy, uwielbiam używać PyQt do szybkiego prototypowania aplikacji lub aplikacji wewnętrznych. Używanie Pythona do wykonywania całego kodowania zmniejsza obawy związane z C ++ i sprawia, że Qt jest bardzo przyjemnym miejscem.
Edytuj, w odpowiedzi na kilka komentarzy:
Kiedy pisałem o pisaniu Qt w C ++, nie narzekałem tak bardzo na samo Qt , ale więcej o środowisku, w którym żyje. Prawdą jest, że Qt bardzo dobrze zarządza swoimi własnymi zasobami, ale cały kod związany z GUI, ale nie Qt, musi być napisany w C ++. Nawet tam Qt zapewnia wiele fajne narzędzia, ale ostatecznie musisz radzić sobie z C ++ na tym poziomie. Qt sprawia, że C ++ jest znośny, ale nadal jest to C ++.
Co do introspekcji, mam na myśli to: najtrudniejsze przypadki do debugowania to kiedy ty mieć wskaźnik do obiektu, który nie zachowuje się tak, jak myślisz, że powinien. W C ++ twój debugger może trochę zajrzeć do wnętrza tego obiektu (jeśli zdarzy się, że ma informacje o typie w punkcie thwt), ale nawet to nie zawsze działa. Z drugiej strony weźmy Cocoa w tej samej sytuacji. W Cocoa / Obj-C możesz wysyłać komunikaty („funkcje wywołania”) do obiektu bezpośrednio w debugerze. Możesz zmienić stan obiektu, możesz zapytać go o jego atrybuty, możesz zapytać go o typ i nazwy funkcji … To może znacznie ułatwić debugowanie. Qt / C ++ nie ma nic podobnego.
Komentarze
Odpowiedź
Najważniejsze, ale nie wspomniana rzecz. W dużym projekcie jedna rzecz powoduje tyle problemów i niepotrzebnego kodu. Mechanizmy gniazda sygnałowego Qt są nieefektywne. Widżety Qt nie zapewniają niezbędnych sygnałów dla prostych widżetów zdarzeń. Na przykład nie można ustawić sygnałów dla onHover, onMouseEnter, onMouseLeave, onKeyReleased, onLostFocus, onGainFocus itp. QTreeWidget zapewnia jeden lub dwa ultra proste, bezużyteczne sygnały.
Tak, możesz używać zdarzeń, ALE !!! stworzyłeś nową klasę dla każdego widżetu z niestandardowym zdarzeniem. To ogromna utrata wydajności;
- Przepisałeś każde zdarzenie spersonalizowanego obiektu widżetu i wprowadzono drobne zmiany.
- Tracisz całą zawartość Qt Designera. Musisz promować każdy widżet zdarzeniami niestandardowymi.
- Projekt stał się większy i trudny w utrzymaniu.
- Z tego powodu zacząłeś nie lubić qt. Zacząłeś mówić o tym, jak .net dostarcza delegatów, o wiele lepiej niż slot sygnału, jak .net komponenty (widżety) generalnie zapewniają wszystkie wydarzenia, jakie możesz sobie wyobrazić. I itp.
Jedna z moich uczelni napisał nową klasę pola kombi dla każdego widżetu pola kombi, ponieważ musiał użyć jakiegoś zdarzenia niezwiązanego z sygnałem. Prawdziwa historia …
Jednak Qt jest jak dotąd najlepszym frameworkiem C ++ UI z wadami i wzlotami.
Komentarze
Odpowiedź
Bardzo podoba mi się Qt, ale dla wielu aplikacji jest to trochę za ciężkie. Czasami po prostu nie potrzebujesz takiego poziomu złożoności. Czasami po prostu potrzebujesz czegoś prostego bez całego narzutu Qt. Nie każda aplikacja musi być sterowana zdarzeniami, a C ++ zapewnia rozsądny zestaw szablonów. Boost zapewnia kolejny bardzo dobry zestaw i zawiera wiele funkcji niskiego poziomu (plik, gniazdo, wskaźniki zarządzane itp.), Które obsługuje QT.
Inne aplikacje mają wymagania licencyjne, które nie działają dobrze z GPL , Licencja komercyjna LGPL lub Qt. GPL jest nieodpowiednia dla oprogramowania komercyjnego. Licencja LGPL jest nieodpowiednia dla oprogramowania z linkami statycznymi, a licencja komercyjna kosztuje – coś, czego wielu nie chce płacić.
Niektórzy mają względy bezpieczeństwa lub stabilności, które nie pozwalają na złożone biblioteki, takie jak Qt.
Aby wstępnie przetworzyć źródła, musisz uruchomić moc. Nie jest to duży problem, ale dla nowego użytkownika może on zniechęcać. Wielu programistów uważa, że potrzebujesz używać qmake z Qt, ale to jest mylące. Możliwe jest dość łatwe podłączenie Qt do innych systemów kompilacji.
Niektóre cele są bardzo Ograniczona pamięć lub procesor.
Istnieją pewne problemy specyficzne dla platformy. Większość z nich jest nieudokumentowana. Zbuduj wystarczająco dużą aplikację, a natkniesz się na nie i zastanawiasz się, co się dzieje (wyłączenie odpowiedzialności, ostatnim razem, gdy używałem Qt w złości, było ponad 18 miesięcy temu, więc mogło się poprawić).
To tylko C ++. Istnieją inne powiązania językowe, ale mają tendencję do ukrywania lub słabego ujawniania wielu funkcjonalność, do której chciałbyś Qt.
Jest wiele powodów, dla których nie powinieneś używać Qt, dlatego istnieją alternatywy. Jeśli masz tylko młotek, każdy problem będzie wyglądał jak gwóźdź.
Komentarze
Odpowiedź
Faktyczny powód nie jest techniczny.
Ludzie się zdarzają być innym. Tak samo jak ich wybory. Jednolitość nie jest cechą ludzką.
Komentarze