GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa dovrei scegliere:GTK+ o Qt?

Dato che ti rivolgi principalmente a Linux, la scelta dipende principalmente dal linguaggio di programmazione che desideri utilizzare.

Se codifichi in C, ovviamente scegli GTK+

Se codifichi in C++, scegli Qt, altrimenti avrai bisogno di Gtkmm (un wrapper C++ su GTK+)

Se codifichi in Python, sia GTK+ che Qt hanno binding per il linguaggio:vedi PyGtk, PyQt e PySide (quello lanciato dalla stessa Nokia).

Se codifichi in Java, Qt non è più un'opzione praticabile, dato che Nokia ha interrotto Qt Jambi (i collegamenti Java per Qt).

Inoltre, Qt è di prim'ordine per quanto riguarda l'API QGraphicsScene dello scenegraph, il suo motore di scripting basato su Javascript Core (il motore che alimenta WebKit), la sua macchina a stati e il framework delle animazioni e l'interfaccia utente dichiarativa.

GTK+ non offre molto, anche se puoi usare Clutter insieme ad esso.

Se stai esaminando specificamente le funzionalità di DB, XML (GTK+ ha un parser per un sottoinsieme di XML) e threading (GTK+ ha GLib), Qt offrirà tutto ciò in QtSql, QtXml e QtConcurrent.

Tutto sommato, direi che Qt è una scelta sicura. Ma anche GTK+ è molto capace.

Non sono sicuro che otterrai una risposta cristallina alla tua domanda, il che spiega perché alcune persone continuano a preferire Gnome a KDE o viceversa. Scegli ciò che funziona meglio per te.

PS:se prevedi di prendere di mira anche Symbian, allora scegli Qt.

EDIT:Qualcosa che va bene anche con Qt è QtWebView :porta Chromium nella tua applicazione Qt per visualizzare i contenuti web. Altri stanno incorporando contenuti web nella loro applicazione utilizzando ad esempio Awesomium o Berkelium.


Ho già usato GTK+, QT e wxWidgets. Ecco un breve riepilogo:

Per il mio primo progetto di interfaccia utente multipiattaforma ho deciso di scegliere wxWidgets principalmente perché all'epoca la licenza non era restrittiva come quella di QT (QT era GPL e solo per Linux) e aveva un'interfaccia utente specifica per piattaforma (a differenza di GTK). Il progetto ha funzionato bene, ma ci sono stati alcuni problemi tecnici per compilarlo ed eseguirlo correttamente su altre piattaforme - a volte alcuni eventi sono stati avviati in modo diverso e così via. Anche GDI in wxWidgets era piuttosto lento.

Successivamente ho usato GTK per un progetto diverso in Python. Per questo ho usato gli attacchi in pitone e tutto ha funzionato più o meno senza intoppi. Non mi è piaciuto molto il fatto che l'interfaccia utente non sembri nativa su Windows e Mac e anche quando avvii un'app GTK +, esegue sempre il debug di un sacco di avvisi CRITICI che sembrano buoni da ignorare. :S

Infine, ho realizzato un progetto QT molto semplice ora che Nokia l'ha acquisito ed è stato brillante. Il migliore dei tre. Prima di tutto, se non sei un vecchio liceale che preferisce VI o Emacs, QtCreator è geniale. Adoro VI e l'ho usato per anni, ma preferisco di gran lunga QtCreator per i progetti C++ QT. Per quanto riguarda la libreria mi è piaciuta molto anche la documentazione e le API fornite. QT ha un concetto di slot e segnali che introducono nuove parole chiave C++ e un preprocessore. Fondamentalmente, dopo aver letto un tutorial lo capirai facilmente e inizierai ad amarlo. Ora sto sviluppando iPhone e sembra un po' come il paradigma dell'interfaccia utente di Cocoa/Interface Builder.

Riepilogo:sceglierei QT a mani basse. La licenza è piuttosto buona e l'SDK e la documentazione sono davvero carini.


Linux
  1. Temi sonori in Linux:cosa dovrebbe sapere ogni utente

  2. Apache vs Nginx:quale server Web dovresti scegliere

  3. Cosa dovrei usare al posto di windows.h in Linux?

  4. Cosa fa .cache? Consuma un enorme spazio su disco

  5. Con quale utente dovrebbero essere eseguiti NGinx e PHP?

Quale gusto di Ubuntu dovresti scegliere?

I 20 principali motivi per cui dovresti scegliere un server Linux

Che cos'è un Homelab e perché dovresti averne uno?

Cos'è Zsh? Dovresti usarlo?

Quale distribuzione alternativa CentOS dovresti scegliere?

Dovrei scegliere Linux Server o Windows?