Wiele pakietów jest dostępnych w wersjach GTK i QT.

  • Jaka jest różnica między nimi?
  • Czy jest jakaś różnica w wydajności lub metodzie pracy?

Odpowiedź

Ogólnie rzecz biorąc, różnica z punktu widzenia użytkownika powinna być czysto kosmetyczna. Qt i GTK ustawiają motywy niezależnie (np. Przez qtconfig lub gtk-chtheme), ale jest to zharmonizowane w niektórych środowiskach graficznych.

GNU / Linux jest bardziej zorientowany na GTK niż Qt w tym sensie, że poprzedni jest częściej używany, więc możesz chcieć go preferować, gdy ma się wybór; wyjątek byłby w KDE, które używa Qt do własnych aplikacji – chociaż żaden z tych czynników nie jest bardzo ważny.

A bardziej znaczący problem byłby w kontekstach z bardzo ograniczoną pamięcią RAM (np. < 1/4 GB); w tym przypadku prawdopodobnie chciałbyś, aby system używał wyłącznie GTK lub Qt, ale nie oba. W przypadku większości nowoczesnych komputerów stacjonarnych z gigabajtami pamięci nie ma to jednak znaczenia – intensywne używanie obu może kosztować dodatkowe (dzikie przypuszczenie) 50-100 MB.


Pamiętaj, że istnieją również różne wersje zarówno GTK (2 i 3), jak i Qt (3 i 4) ) nadal szeroko stosowany, ale nie kompatybilny wstecz (więc aplikacja Qt 3 nie może używać bibliotek Qt 4). Jednak obie wersje mogą istnieć w systemie w tym samym czasie, a najpoważniejszą konsekwencją tego byłoby potencjalne zamieszanie i nieco większe przepełnienie pamięci.

Komentarze

  • Byłbym bardzo zainteresowany, aby dowiedzieć się, jak doszedłeś do wniosku, że Linux jest bardziej zorientowany na GTK? Linux zazwyczaj implikuje tylko jądro Linuksa, które generalnie nie ma uprzedzeń w stosunku do żadnego z zestawów narzędzi, ponieważ jest to jądro systemu operacyjnego, a nie program w przestrzeni użytkownika GUI. Jeśli chciałeś sugerować GNU / Linux jako system operacyjny, ' nadal kwestionuję Twoje roszczenie. Powiedzieć, że GNU / Linux jest bardziej zorientowany na GTK, ponieważ Ubuntu jest najpopularniejszą dystrybucją, to tak, jakby powiedzieć, że Christiano Ronaldo jest najlepszym sportowcem, ponieważ piłka nożna jest najczęściej graną grą na świecie. (Ja też ' d spieram się)
  • @darnir I ' wstawię ” GNU „, ponieważ miałem na myśli system operacyjny w potocznym sensie. ' Będę bronić swojej tezy, że jest bardziej zorientowany na GTK niż na Qt: GTK (pierwotnie oznaczał ” GIMP Tool Kit ” i GIMP = the GNU Image Manipulation Program), GIMP i GNOME to wszystkie projekty GNU i podstawowa część ich (przestrzeni użytkownika) wizji systemu operacyjnego , co w połączeniu z jądrem jest tym, czym ” linux ” jest historycznie. Więc GTK został opracowany głównie dla Linuksa, jest też natywnym C (w porównaniu z Qt ' C ++), podczas gdy Qt jest bardziej prawdziwie wieloplatformowym
  • Chociaż zgadzam się z tobą co do historii i etymologii GTK, nie oznacza to w sposób dorozumiany, że GNU / Linux jest zorientowany na GTK. W rzeczywistości jest odwrotnie i potwierdzają to twoje wypowiedzi. GTK został zaprojektowany dla linuxa, a nie na odwrót. ' d bronię swojej tezy mówiącej, że Linux jako jądro i GNU / Linux jako system operacyjny są agnostykami w stosunku do jakiegokolwiek zestawu narzędzi GUI. GTK jest często bardziej widoczny w środowisku naturalnym niż Qt z powodu dużego uzależnienia od Ubuntu '. Pomaga również fakt, że jest lżejszy dla zasobów systemowych.
  • @darnir Tak, system operacyjny jest zasadniczo agnostyczny WRT the GUI toolkit – nie twierdzę, że GTK to ” natywny ” zestaw narzędzi itp. Ale ' mylisz się, dlaczego ” jest często spotykany w środowisku naturalnym bardziej ” – GTK był najczęściej używanym zestawem narzędzi na platformie zanim jeszcze powstał Ubuntu ze względu na wspomniany wcześniej związek z innymi podstawowe części używane szeroko przez wszystkie dystrybucje. Dlatego większość aplikacji GUI dla Linuksa to już aplikacje GTK i dlaczego, bez szerszego kontekstu, warto poinformować nowego użytkownika ” Ty równie dobrze może wybrać ten „, przy czym wszystkie inne będą równe. Ale to naprawdę nie ma znaczenia.
  • Korzystanie z wielu różnych zestawów narzędzi wymagałoby również znacznie więcej miejsca; Nie ' nie sądzę, że wpłynęłoby to na wydajność, ale tylko na miejsce na inne rzeczy.

Odpowiedź

Nie, nie ma różnicy w wewnętrznej strukturze takich programów. GTK i Qt to zestawy narzędzi i struktury interfejsu użytkownika. Są to biblioteki, których programiści używają do projektowania interfejsów graficznych.

Podczas pisania programu graficznego (GUI) najpierw opracowywane są jego podstawowe elementy wewnętrzne. To właśnie sprawia, że program działa. Nigdy nie widzisz jądra, po prostu działają w tle. Oprócz tego zaprojektowano interfejs użytkownika (UI).

Teraz programiści mogą zaprojektować kompletny interfejs od podstaw lub ponownie wykorzystać projekty wykonane przez innych. Ponowne wykorzystanie projektu ma dużą zaletę. Dzięki temu wszystkie programy w komputerze będą wyglądać podobnie. Dlatego używają zestawów narzędzi GUI. GTK i Qt to dwa niezwykle popularne zestawy narzędzi GUI.

GTK to standardowy zestaw narzędzi dla GNOME, podczas gdy Qt jest używany przez KDE. Z punktu widzenia użytkownika to tylko wygląd, który się różni. Program pozostaje ten sam.

Odpowiedź

Kolejnym ważnym aspektem do rozważenia jest licencja Qt odsyłacz do ujawnienia ich licencji , które jest wyraźnie określone jako bezpłatne dla większości projektów non-profit, ale relacja handlowa jest możliwa i może mieć w tym przypadku ograniczenia. Podczas gdy GTK, wyraźnie zaznacz, że może być używane swobodnie nawet w zastrzeżonych aplikacjach Instrukcja GTK :

Are there any licensing restrictions? GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties. 

Kluczowy aspekt tworzenia złożonego GUI będzie polegał na GLADE jako zestawie do projektowania i czy pasuje to do twojego podejścia linku do polany . Ma to być platforma wieloplatformowa, ale może nie być tak szeroko obsługiwana, jak Qt.

Odpowiedź

W jaki sposób porównują swoje modele obiektowe i jak bardzo są zgodne ze standardem C ++ – z mojego ograniczonego doświadczenia, QT wydawał się być trochę zepsuty z generatorami kodu i wymyślając na nowo koło z własnymi funkcjonalnie równoważnymi klasami dla strun i klas. W skrócie QT wydawało się mieć więcej gwizdków i dzwonków, których jestem pewien, że wiele okazał się przydatny, ale wydawał się również mieć ciężki, zastrzeżony charakter. Jak powiedziałem, miałem z tym ograniczone doświadczenie (a jeszcze mniej z Gtk). Chciałbym poznać opinie na temat ich dzisiejszych porównań – z perspektywy programisty, który skłania się ku ogólnemu podejściu do rzeczy, które próbują używać standardów C ++ (takich jak STL, ciągi C ++, wątki itp.)

Komentarze

  • Brzmi to bardzo jak osobista opinia, a nie odpowiedź oparta na faktach, której ' oczekuje się w większości witryn SE. Zauważ również, że rzeczy takie jak QString powstały z konieczności dziesiątki lat temu, kiedy w STL nie było odpowiedników funkcji. Teraz, gdy nowoczesne standardy C ++ przejęły większość funkcji, wiele klas Qt to tylko cienkie opakowania wokół natywnych rozwiązań C ++.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *