web-dev-qa-db-fra.com

Quelle est la différence entre les applications GTK et QT?

De nombreux packages sont disponibles dans les versions GTK et QT.

  • Quelle est la différence entre eux?
  • Y a-t-il une différence de performance ou de méthode de travail?
60
Pandya

En général, la différence du point de vue de l'utilisateur doit être purement cosmétique. Qt et GTK définissent les thèmes indépendamment (via, par exemple, qtconfig ou gtk-chtheme) mais ceci est harmonisé par certains environnements de bureau.

GNU/Linux a tendance à être plus orienté GTK que Qt dans le sens où le premier est plus couramment utilisé, vous pouvez donc le préférer lorsque vous avez le choix; une exception serait sous KDE, qui utilise Qt pour ses propres applications - bien qu'aucun de ces facteurs ne soit très important.

Un problème plus important serait dans des contextes avec très limité RAM (comme dans, <1/4 Go); dans ce cas, vous voudriez probablement que le système utilise exclusivement GTK o Qt, mais pas les deux. Sur la plupart des ordinateurs de bureau modernes avec des gigaoctets de mémoire, cependant, ce n'est pas un problème - l'utilisation intensive des deux peut vous coûter 50-100 Mo supplémentaires (estimation approximative).


Notez qu'il existe également différentes versions de GTK (2 et 3) et Qt (3 et 4) encore largement utilisées mais pas rétrocompatibles (donc une application Qt 3 ne peut pas utiliser les bibliothèques Qt 4). Cependant, les deux versions peuvent exister sur un système en même temps et la conséquence la plus sérieuse serait le risque de confusion et un peu plus de mémoire.

47
goldilocks

Non, il n'y a pas de différence dans la structure interne de ces programmes. GTK et Qt sont des boîtes à outils et des cadres d'interface utilisateur. Ce sont des bibliothèques que les développeurs utilisent pour concevoir des interfaces graphiques.

Lorsqu'un programme graphique (GUI) est écrit, ses composants internes de base sont d'abord développés. C'est ce qui fait fonctionner le programme. Vous n'avez jamais voir le noyau, ils s'exécutent simplement en arrière-plan. En plus de ce noyau, une interface utilisateur (UI) est conçue.

Désormais, les développeurs pouvaient concevoir l'interface complète à partir de zéro, ou réutiliser des conceptions faites par d'autres. La réutilisation de la conception présente un avantage majeur. Il permet à tous les programmes de votre ordinateur de se ressembler. Par conséquent, ils utilisent des boîtes à outils GUI. GTK et Qt sont deux boîtes à outils GUI extrêmement courantes.

GTK est la boîte à outils standard pour GNOME tandis que Qt est utilisé par KDE. Du point de vue de l'utilisateur, ce ne sont que les regards qui diffèrent. Le programme reste le même dans l'âme.

20
darnir

Un autre aspect important à considérer est la licence Qt lien vers leur divulgation de licence qui est explicitement définie pour être librement accessible à la plupart des projets à but non lucratif, mais une relation commerciale est possible et peut avoir des restrictions dans ce cas. . Alors que GTK, déclare explicitement qu'il peut être utilisé librement même dans les applications propriétaires instruction 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. 

Un aspect clé du développement d'une interface graphique complexe reposera sur GLADE en tant que kit de conception et si cela correspond à votre approche lien glade . Il vise à être multiplateforme, mais peut ne pas être aussi largement supporté que Qt.

8
Vass