2008-10-14 7 views
21

Zastanawiam się, który z nich powinienem rozważyć, jeśli potrzebuję oprogramowania do użycia na obu platformach, WIN i Linux i dlaczego?GTK + lub Qt pod Windows

+0

Im szuka więcej w tym, jak trudne będą również kompilowanie pod oknami każdego z nich? Wiem, że QT jest dość podobny, jak kompilowanie go pod linuxem. Również, który z nich zajmie dłuższy czas kodowania tego samego typu aplikacji? –

+0

Moja odpowiedź, która z jakiegoś powodu została odrzucona, stwierdziła, że ​​kompilacja GTK na Windowsie jest trudna. Bardzo czasochłonne. Nie polecam tego. Qt to 2-godzinna kompilacja, która zwykle nie sprawia problemów. Chociaż dystrybucja C++ skompilowana z visual studio 2005+ ma swoje własne problemy. – mxcl

+0

Co jest nie tak z pytającym Mike'em? Jego awatar stał się szary. –

Odpowiedz

2

Obaj są świetnymi zestawami narzędzi. Opieram swoją decyzję na licencjonowaniu. Qt wymaga, abyś płacił za licencję, jeśli używasz go w komercyjnym produkcie, którego GTK tego nie robi.

+12

Oczywiście to już nie jest prawda. – mxcl

5

GTK + możesz używać prawie we wszystkich językach programowania, w C++ (używając gtkmm) w C (gtk +) w C# (z Gtk #) w Pythonie (PyGtk). Za GTK masz Mono Framework, który jest świetną implementacją .NET Framework dla różnych platform. Jeśli chcesz używać Gtk #, masz świetny IDE (MonoDevelop) z bardzo potężnym projektantem GUI. Możesz zajrzeć na stronę www.mono-project.org. Ale nadal zależy od tego, co chcesz zbudować, szukasz właśnie zestawu narzędzi GUI lub całego środowiska? Logika stojąca za sygnałami/gniazdami jest taka sama w Gtk + i Qt, ale jeśli używasz Gtk #, są one transformowane w paradygmacie delegatów/zdarzeń.

+2

Jeśli tworzysz komercyjne oprogramowanie, byłbyś głupcem, gdyby używał czegoś innego niż biblioteki podstawowe, tj. GTK lub Qt. Wszystko powyżej, nie ma gwarancji utrzymania lub niezawodności. Ogólnie mówiąc. – mxcl

+1

@Max PyGTK i GTK # są obsługiwane dla rozwoju aplikacji Gnome, więc oczekiwałbym, że będą mieli dobry poziom wsparcia (równoważny samej GTK +). –

+0

Cóż, oboje jesteście zdenerwowani i zaskoczeni, gdy okaże się, że tak nie jest. – mxcl

5

mój $ ,02:

mam używany Qt i wyłączać w ciągu ostatnich 4 lat, i to ręce-mój ulubiony zestaw narzędzi czegokolwiek próbowałem (Win32, MFC, Borland, Java, GTK) . Użyłem GTK przez kilka tygodni, aby go wypróbować i nie spodobało mi się to. Głównie dlatego, że uważam, że używanie aplikacji C zamiast C++ jest niewygodne dla aplikacji GUI na PC ... Robię też pracę osadzoną, a ja nigdy nie używam C++ na 8051, ale dla dużej aplikacji GUI wolę to . Jeśli masz zamiar wypróbować GTK, proponuję zaglądnąć na stronę GTKmm, ale nigdy sam jej nie używałem.

4

Możesz również rozważyć wxWidgets. Nigdy nie korzystałam z żadnego z nich, ale kiedy przeglądałam zestaw narzędzi na różnych platformach, był to ten, który postanowiłem spróbować.

13

Oba są dobrymi zestawami narzędzi, które mają swoje wady i zalety.

Jedną z różnic jest język implementacji. Qt jest w C++, a GTK + jest w C. Jednak GTK + ma powiązania dla wielu, wielu innych języków (perl, python, C++, .NET, itp.), Więc nie jest to duży problem.

Zaletą Qt jest to, że oferuje nieco szerszy zakres wbudowanej funkcjonalności (xml, dostęp do baz danych, programowanie sieciowe, openGL, itp.). GTK + ma w zasadzie wszystkie te rzeczy na swojej orbicie (na przykład libxml2, librsvg, libsoup, libgda, itp.), Ale nie są one tak bardzo spójne jak Qt.

Moja osobista rekomendacja to użycie gtkmm, powiązań C++ dla GTK +. Oferuje bardziej komfortowy język programowania obiektowego i zapewnia prawie taką samą wydajność natywną, jak używanie GTK + z C. (Disclaimer: ja przyczyniam się do gtkmm).

+4

I oczywiście, teraz Qt jest także LGPL. – mxcl

+0

Usunąłem przestarzały akapit dotyczący licencji. – mikerobi

+0

Czy GTK wygląda natywnie na Windowsie? Czy to nie zależy od serwera X? Widziałem port Potopu w systemie Windows i wyglądało to okropnie. – sashoalm

23

Pakowanie GTK i jego zależności w systemie Windows to projekt w pełnym wymiarze godzin sam w sobie. Qt jest znacznie łatwiejsze do dystrybucji, ponieważ nie ma zależności, które nie są dostarczane z Windows.

Qt od początku było platformą krzyżową. GTK nie zawsze była platformą wieloplatformową. Takie fundamentalne decyzje kształtują ogólny projekt i powinny być wykonane przed napisaniem jakiegokolwiek kodu w mojej opinii.

Chciałbym skomentować więcej, ale sprowadziłbym się do spekulacji, tych dwóch rzeczy, które wiem na pewno.

+2

Istnieje instalator [all-in-one dla PyGTK 2.24] (http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/). Próbowałem go i działa, a ostatnie wersje GTK wydają się być znacznie lepsze i mają natywne wsparcie dla Windows. Co czyni go porównywalnym z Qt w oknach. – saeedgnu

+0

O ile nie kocham GTK na * nix, głównie ze względu na jego design. – saeedgnu

3

trzy dodatkowe punkty na korzyść Qt:

  1. Twój projekt ma nie być GPL; istnieje wiele innych licencji open-source dostępnych w Qt GPL Exception, w tym BSD i LGPL.
  2. Domyślny motyw Qt w systemie Windows znacznie lepiej integruje się z motywem Wimp GTK.
  3. Jeśli chcesz później obsługiwać komputery Macintosh, będziesz mieć znacznie łatwiejszy czas z Qt.
+0

GTK + jest obsługiwany na komputerze Mac lub przynajmniej się do niego dostanie. –

+0

Qt jest obsługiwany na komputerach Mac, Windows, Linux i innych osadzonych platformach w zredukowanej formie. –

+1

Z Gtk.org: "GTK + jest licencjonowany na licencji GNU LGPL 2.1, umożliwiając tworzenie zarówno wolnego, jak i zastrzeżonego oprogramowania z GTK + bez żadnych opłat licencyjnych ani honorariów. " –

3

Wolałbym Qt. Podobnie jak dzisiaj, Qt jest open-source i darmową licencją LGPL. Qt jest lepiej portowane dla systemu Windows i wygląda bardziej natywnie niż GTK. Na przykład Gimp na windowsie wygląda bardzo dziwnie, ponieważ większość jego okien dialogowych nie jest dialogami Windows. Qt może używać rodzimych okien dialogowych, takich jak Open/Save, co sprawia, że ​​czuje się lepiej jako framework. I tak, Qt to framework, a nie tylko GUI Widget. Nie, nie reklamuję tutaj Qt, ponieważ Qt ma pewną dziwność dla użytkownika Windows z punktu widzenia programowania, na przykład Qt jest oparty na Layout, podczas gdy MFC/.NET są oparte na kotwicy, a menedżerowie Qt's Layout są czasami dziwni. Ale jeśli będę musiał wybrać między GTK i Qt, wybiorę Qt. Również teraz Qt ma bardzo dobre IDE, Qt Creator, który jest moim domyślnym IDE C/C++ dla wszystkich typów projektów (jako że Qt Creator może być używany jako taki).

2

Qt 5.0 wygrał wojnę. Nie jestem wielkim fanem C++ (wolę zwykłe stare C), ale muszę przyznać, że framework Qt jest niesamowity. Spróbuj napisać program GUI z GTK, który działa na OS X, Linux, Windows (i wkrótce iOS i Android) z natywnym wyglądem i czuciem ... Powodzenia!

0

polecam używać Qt, ponieważ:

  • Jest to wieloplatformowy i i obejmuje szeroką gamę systemów operacyjnych (w tym komórkowych)
  • Jest opensource i ma szybkość w uzyskaniu lepszej
  • Ma świetnego projektanta GUI i bardzo zdolnego IDE (Qt Creator)
  • Konstrukcja API jest doskonała i łatwa w użyciu.
  • Ma świetną dokumentację, która jest łatwa do odczytania
  • To system tłumaczenie Qt, która pozwala mieć wielojęzycznym APP
  • System układ GUI gdzie widgety zmieniają swój rozmiar w zależności od układu sprawia, że ​​wszystko jest znacznie łatwiejsze
  • QML daje moc, aby stworzyć fantastyczne GUI z Świetna grafika i animacje
  • ma wielkie wsparcie dla sieci i łączności (gniazdka, SSL, wWW, IPC, ...)
  • ma QTestLib do testowania kodu
  • ma wiele język wiążący, jeśli don” t chcesz użyć C++