GNU/Linux >> Znalost Linux >  >> Linux

Co si mám vybrat:GTK+ nebo Qt?

Jak se zdá, primárně cílíte na Linux, pak výběr většinou závisí na programovacím jazyce, který chcete použít.

Pokud kódujete v C, pak samozřejmě jděte na GTK+

Pokud kódujete v C++, jděte na Qt, jinak budete potřebovat Gtkmm (C++ wrapper přes GTK+)

Pokud kódujete v Pythonu, GTK+ i Qt mají vazby pro jazyk:viz PyGtk, PyQt a PySide (ten, který spustila samotná Nokia).

Pokud kódujete v Javě, Qt již není schůdnou možností, protože Nokia přestala vyrábět Qt Jambi (vazby Java pro Qt).

Qt je také špičkovější, pokud jde o jeho scénografii QGraphicsScene API, jeho skriptovací engine postavený na Javascript Core (motor pohánějící WebKit), jeho stavový stroj a rámec animací a deklarativní uživatelské rozhraní.

GTK+ toho nenabízí tolik, i když s ním můžete používat Clutter.

Pokud konkrétně hledáte funkce DB, XML (GTK+ má analyzátor pro podmnožinu XML) a vláken (GTK+ má GLib), pak Qt nabídne vše v QtSql, QtXml a QtConcurrent.

Celkově vzato bych řekl, že Qt je jistá volba. Ale GTK+ je také velmi schopný.

Nejsem si jistý, že na svou otázku dostanete křišťálově jasnou odpověď, což vysvětluje, proč někteří lidé stále preferují Gnome před KDE nebo naopak. Vyberte, co vám nejlépe vyhovuje.

PS:Plánujete také cílit na Symbian, pak jděte na Qt.

EDIT:Něco, co je také skvělé s Qt, je QtWebView :přináší Chromium do vaší aplikace Qt pro zobrazení webového obsahu. Jiní vkládají webový obsah do své aplikace pomocí například Awesomium nebo Berkelium.


Dříve jsem používal GTK+, QT a wxWidgets. Zde je krátké shrnutí:

Pro svůj první projekt multiplatformního uživatelského rozhraní jsem se rozhodl pro wxWidgets hlavně proto, že v té době licence nebyla tak omezující jako QT (QT bylo GPL a pouze pro Linux) a mělo uživatelské rozhraní specifické pro platformu (na rozdíl od GTK). Projekt fungoval dobře, ale vyskytlo se několik chyb, jak jej správně zkompilovat a spustit na jiných platformách - někdy byly některé události spouštěny jinak a podobně. Také GDI v wxWidgets bylo dost pomalé.

Dále jsem použil GTK pro jiný projekt v pythonu. K tomu jsem použil vazby python a vše fungovalo víceméně hladce. Nelíbilo se mi, že uživatelské rozhraní nevypadalo nativní ve Windows a Mac a také když spustíte aplikaci GTK+, vždy ladí výstupy KRITICKÝCH varování, která se zdá být v pořádku ignorovat. :S

Nakonec jsem udělal velmi jednoduchý QT projekt, když ho Nokia získala a byl skvělý. Nejlepší ze tří. Za prvé, pokud nejste oldschooler, který preferuje VI nebo Emacs, QtCreator je skvělý. Opravdu miluji VI a používám ho roky, ale mnohem raději QtCreator pro C++ QT projekty. Ohledně knihovny se mi také hodně líbila dokumentace a poskytovaná API. QT má koncept slotů a signálů, které zavádějí nová klíčová slova C++ a preprocesor. V podstatě po přečtení tutoriálu jej snadno získáte a začnete ho milovat. Nyní dělám iPhone dev a připadá mi to trochu jako paradigma uživatelského rozhraní Cocoa/Interface Builder.

Shrnutí:Šel bych pro QT ruce dolů. Licence je docela dobrá a SDK a dokumentace opravdu pěkné.


Linux
  1. C++:jakou knihovnu regulárních výrazů bych měl použít?

  2. Co bych měl použít místo windows.h v Linuxu?

  3. Co dělá .cache? Spotřebovává to obrovské místo na disku

  1. Zvuková témata v Linuxu:Co by měl vědět každý uživatel

  2. Apache vs Nginx:Který webový server byste si měli vybrat

  3. Jaká by měla být ideální oprávnění k domovskému adresáři v linuxu

  1. Co je kurátorství obsahu a jak byste to měli dělat?

  2. Co byste měli vědět, než povolíte IPv6

  3. Pod jakým uživatelem by měly NGinx a PHP běžet?