Je n'ai jamais utilisé GTK, mais d'après mon expérience personnelle de l'utilisation de Qt :
C'est bien plus qu'une simple interface graphique. C'est un cadre d'application complet. J'avais l'habitude de le considérer comme les bibliothèques Java pour C++. Il fournit tout ce que vous avez mentionné - base de données, XML, mise en réseau et threading, et plus encore. Il fournit également des éléments tels que les conteneurs et les itérateurs, ainsi que des contreparties à un certain nombre de bibliothèques Boost.
Ce qui m'a le plus impressionné lorsque j'ai commencé à utiliser Qt, c'est sa documentation extrêmement complète. Vous disposez d'un programme appelé Qt Assistant, qui fournit une documentation API entièrement indexée et consultable sur votre bureau, ainsi que de nombreux exemples de code et tutoriels. J'ai trouvé que cela faisait une grande différence par rapport à la recherche d'informations sur les API sur le Web à chaque fois. Un accès très rapide lorsque vous devez vous souvenir de la signature d'une méthode.
Je ne suis pas sûr de savoir lequel est le plus courant ; il est probablement difficile de le mesurer avec précision. Ils sont certainement tous deux populaires. Comme Gnome est le bureau par défaut d'Ubuntu, et que Gnome repose sur GTK, il est évidemment très utilisé. Bien sûr, KDE est également très populaire. Nokia pousse fortement Qt dans l'espace mobile - leur Maemo OS, utilisé sur le nouveau N900 par exemple, va bientôt passer à Qt comme boîte à outils par défaut (actuellement, c'est GTK). Je crois que Qt deviendra aussi bientôt la boîte à outils par défaut pour Symbian OS.
Je n'ai pas utilisé Qt Creator, mais j'ai entendu beaucoup de bonnes choses à son sujet. C'est un IDE C++ avec une forte intégration évidente avec Qt. Il dispose également d'une fausse émulation de Vim, ce qui est toujours agréable si vous aimez ce genre de choses !
Qt utilise qmake pour la configuration de la construction. Je trouve cela beaucoup plus agréable que de devoir écrire ses propres makefiles. Je ne sais pas ce que GTK utilise pour la construction.
Une ou deux choses que j'ai trouvées un peu rebutantes avec Qt au début, c'est son utilisation intensive des macros de préprocesseur. Le système de signal/slots fournit un mécanisme agréable pour le passage d'événements/messages dans votre application, mais cela ressemble un peu à de la magie qui peut ne pas être facilement portable dans une autre boîte à outils si vous le souhaitez un jour. De même, le moc (meta-object compiler), bien que je ne sois pas tout à fait sûr de ce qu'il fait, donne aussi un peu trop l'impression d'être de la magie en coulisse.
Dans l'ensemble, cependant, je recommande Qt, en particulier si vous êtes en train d'apprendre. Il dispose d'une documentation vraiment étonnante, d'un IDE agréable et de forums très fréquentés. Vous serez en mesure de construire des applications C++ très rapidement avec lui, en particulier avec le QML à venir dans 4.7.
20 votes
À l'origine, le modèle de licence de Qt était très controversé : il s'agissait d'une licence GPL complète ou d'une licence commerciale, tandis que GTK+ était sous LGPL (ce dernier était donc plus facile à utiliser en combinaison avec votre produit à source fermée). Mais aujourd'hui, Qt est également disponible sous LGPL, donc ce n'est plus une raison réelle de choisir l'un ou l'autre.
3 votes
Vous pouvez également consulter cette question connexe : stackoverflow.com/questions/1801074/
6 votes
Et encore une fois une bonne question fermée sur stackoverflow. Je voudrais ajouter que si vous avez besoin d'un bon widget HTML intégré, vous devez utiliser GTK maintenant (après que QT 5.2 soit passé à un ensemble de fonctionnalités réduites de façon dramatique et inutilisable) ou utiliser QT et intégrer le CEF de Chrome qui ajoute beaucoup de choses, de complications et 20MB à votre application.