Mnoho verzí je k dispozici ve verzích GTK i QT.

  • Jaký je rozdíl mezi nimi?
  • Existuje nějaký rozdíl ve výkonu nebo pracovní metodě?

Odpověď

Obecně by rozdíl z pohledu uživatele měl být čistě kosmetický. Témata Qt a GTK nastavují nezávisle (např. qtconfig nebo gtk-chtheme), ale toto je harmonizováno některými desktopovými prostředími.

GNU / Linux má tendenci být více GTK orientovaný než Qt v tom smyslu, že ten první se běžněji používá, takže možná budete chtít při výběru upřednostnit; výjimkou by bylo prostředí KDE, které používá Qt pro své vlastní aplikace – ačkoli žádný z těchto faktorů není příliš důležitý.

A významnější problém by byl v kontextech s velmi omezenou pamětí RAM (jako v < 1/4 GB); v tomto případě byste pravděpodobně chtěli, aby systém používal výhradně GTK nebo Qt, ale ne obojí. Na většině moderních počítačů s gigabajty paměti to však není problém – rozsáhlé používání obou vás může stát extra (divoký odhad) 50–100 MB.


Upozorňujeme, že existují také různé verze GTK (2 a 3) a Qt (3 a 4 ) stále široce používaný, ale není zpětně kompatibilní (takže aplikace Qt 3 nemůže používat knihovny Qt 4). Obě verze však mohou v systému existovat současně a nejzávažnějším důsledkem toho by byl potenciál záměny a trochu větší nadměrná paměť.

Komentáře

  • Velmi by mě zajímalo, jak dospějete k závěru, že Linux je více orientovaný na GTK? Linux obvykle znamená pouze jádro Linuxu, které obecně nemá žádnou předpojatost vůči žádné z těchto sad nástrojů, protože se jedná o jádro OS, nikoli o program uživatelského prostoru GUI. Pokud jste chtěli implikovat GNU / Linux jako operační systém,

i nadále váš nárok zpochybňuji. Říci, že GNU / Linux je více GTK, protože Ubuntu je nejpopulárnější distribucí, je jako říkat Christiano Ronaldo je nejlepší sportovec, protože fotbal je nejhranější hra na světě. (I ‚ i to zpochybňuji)

  • @darnir Já ‚ vložím “ GNU “ kvalifikátor, protože jsem měl na mysli operační systém v hovorovém smyslu. Obhájím svoji tezi, že je více GTK než Qt orientovaný: GTK (který původně stál za “ GIMP Tool Kit “ a GIMP = GNU Image Manipulation Program), GIMP a GNOME jsou projekty GNU a hlavní část jejich (uživatelské) vize operačního systému. , který je spárován s jádrem, historicky “ linux „. Takže GTK byl vyvinut primárně pro linux, je to také nativní C (vs. Qt ‚ s C ++), zatímco Qt je více skutečně multiplatformní entita.
  • I když s vámi budu souhlasit ohledně historie a etymologie GTK, neznamená to implicitně, že GNU / Linux je orientován na GTK. Ve skutečnosti je opak pravdou a je potvrzen vašimi výroky. GTK byl navržen pro linux, nikoli naopak. ‚ obhájím svou práci s tvrzením, že Linux jako jádro a GNU / Linux jako operační systém jsou vůči jakékoli sadě nástrojů GUI agnostické. GTK je často vidět ve volné přírodě více než Qt, protože je na něm velmi závislá ‚. Pomáhá také skutečnost, že je to u systémových prostředků lehčí.
  • @darnir Ano, operační systém je v podstatě agnostický WRT soubor GUI – netvrdil bych, že GTK je “ nativní “ sada nástrojů atd. Ale ‚ se mýlíte, proč to “ je často vidět ve volné přírodě více “ – GTK byl nejpoužívanější sadou nástrojů na platformě ještě předtím, než Ubuntu vůbec existoval kvůli výše uvedenému vztahu s jinými základní části využívané všemi distribucemi. To je důvod, proč většina linuxových aplikací s grafickým uživatelským rozhraním již je aplikací GTK, a proto, bez dalšího kontextu, má smysl říct novému uživateli “ může také vybrat ten „, všechny ostatní jsou stejné. Ale na tom vlastně nezáleží.
  • Využití několika různých sad nástrojů by také vyžadovalo mnohem více úložného prostoru; Nemyslím si ‚, že by to mělo dopad na výkon, jen prostor pro jiné věci.
  • Odpověď

    Ne, ve vnitřní struktuře těchto programů není žádný rozdíl. GTK a Qt jsou sady nástrojů a rámce uživatelského rozhraní. Jsou to knihovny, které vývojáři používají k navrhování grafických rozhraní.

    Když je napsán grafický program (GUI), jsou nejprve vyvinuty jeho základní interní prvky. Díky tomu je program spuštěn. Nikdy nevidíte jádro, jednoduše se spustí na pozadí. Kromě tohoto jádra je navrženo uživatelské rozhraní (UI).

    Nyní mohou vývojáři navrhnout kompletní rozhraní od začátku nebo znovu použít návrhy od jiných. Opětovné použití designu má hlavní výhodu. Umožňuje všem programům v počítači vypadat podobně. Proto používají sady nástrojů GUI. GTK a Qt jsou dvě extrémně běžné sady nástrojů GUI.

    GTK je standardní sada nástrojů pro GNOME, zatímco Qt používá KDE. Z pohledu uživatele se liší pouze vzhled. Program zůstává v podstatě stejný.

    Odpověď

    Dalším důležitým aspektem, který je třeba vzít v úvahu, je Qt licencování odkaz na zveřejnění licence , který je výslovně nastaven tak, aby byl volně dostupný pro většinu neziskových projektů, ale obchodní vztah je možný a může pro tento případ mít omezení. Zatímco GTK, výslovně uveďte, že jej lze volně používat i v proprietárních aplikacích prohlášení 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. 

    Klíčový aspekt komplexního vývoje grafického uživatelského rozhraní bude záviset na GLADE jako návrhové sadě a na tom, zda to vyhovuje vašemu přístupu glade link . Jeho cílem je být multiplatformní, ale nemusí to být tak široce podporovaná multiplatformní jako Qt.

    Odpověď

    Jak se porovnávají, pokud jde o jejich příslušné objektové modely, a jak přesně dodržují standard C ++ – podle mých omezených zkušeností se zdálo, že QT je trochu hacker s generátory kódu a znovuobjevuje kolo s jejich vlastními funkčně ekvivalentními třídami pro řetězce a třídy. Stručně řečeno, QT vypadalo, že má více píšťal a zvonků, což jsem si jistý, že mnoho užitečné, ale také se zdálo, že to má těžký, chráněný pocit. Jak jsem řekl, měl jsem s tím omezené zkušenosti (a ještě méně s Gtk). Chtěl bych nějaké názory na to, jak se dnes porovnávají – z pohledu vývojáře, který se přiklání k obecným přístupům k věcem, které se snaží používat standardy C ++ (jako jsou STL, řetězce C ++, vlákna atd.)

    Komentáře

    • To zní velmi podobně jako osobní názor, nikoli jako odpověď založená na faktech, kterou ‚ očekávají na většině webů SE. Všimněte si také, že věci jako QString se zrodily z nutnosti před desítkami let, kdy v STL nebyly žádné ekvivalentní rysy. Nyní, když moderní standardy C ++ vyzvedly většinu funkcí, jsou mnohé třídy Qt jen tenkými obaly kolem nativních řešení C ++.

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *