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

54

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

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

Réponses:

41

En général, la différence du point de vue de l'utilisateur devrait être purement esthétique. Qt et GTK définissent des thèmes de manière indépendante (via, par exemple, qtconfigou gtk-chtheme), mais cela est harmonisé par certains environnements de bureau.

GNU / Linux a tendance à être plus orienté GTK que Qt en ce sens que le premier est plus utilisé, vous voudrez peut-être le préférer lorsque vous aurez 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 une mémoire RAM très limitée (par exemple, <1/4 Go); dans ce cas, vous voudriez probablement que le système utilise exclusivement GTK ou Qt, mais pas les deux. Sur la plupart des ordinateurs de bureau modernes dotés de giga-octets de mémoire, toutefois, ce n'est pas un problème - utiliser les deux de manière intensive risque de vous coûter 50 à 100 Mo supplémentaires.


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

boucle d'or
la source
8
Je serais extrêmement intéressé de savoir comment vous en êtes arrivé à la conclusion que Linux est davantage orienté GTK? Linux n'implique généralement que le noyau Linux qui, en général, ne privilégie aucun des deux toolkits, car il s'agit d'un noyau de système d'exploitation et non d'un programme utilisateur graphique. Si vous vouliez impliquer GNU / Linux en tant que système d'exploitation, je contesterais tout de même votre affirmation. Dire que GNU / Linux est plus orienté GTK car Ubuntu est la distribution la plus populaire, revient à dire que Christiano Ronaldo est le meilleur sportif car le football est le jeu le plus joué au monde. (Je contesterais cela aussi)
dimanche
10
@darnir Je vais utiliser le qualificatif "GNU" car je parle du système d'exploitation dans un sens familier. Je défendrai ma thèse selon laquelle il est davantage orienté GTK que Qt: GTK (qui représentait à l'origine le "GIMP Tool Kit" et GIMP = le programme de manipulation d'images GNU), GIMP et GNOME sont tous des projets GNU et une partie essentielle. de leur vision (utilisateur) pour un système d’exploitation, qui est associé historiquement au noyau "linux". Donc, GTK a été développé principalement pour Linux, il est également en C natif (par rapport à C ++), alors que Qt est plutôt une entité véritablement multiplateforme.
goldilocks
1
Bien que je sois d’accord avec vous sur l’histoire et l’étymologie de GTK, cela n’implique pas implicitement que GNU / Linux est orienté GTK. En fait, le contraire est vrai et est confirmé par vos déclarations. GTK a été conçu pour Linux, et non l'inverse. Je défendrais ma thèse en affirmant que Linux en tant que noyau et GNU / Linux en tant que système d'exploitation sont agnostiques vis-à-vis de toute boîte à outils GUI. GTK est souvent vu à l'état sauvage plus que Qt en raison de la forte dépendance d'Ubuntu à son égard. Le fait qu'il soit plus léger sur les ressources système aide également.
darnir
3
@darnir Oui, le système d'exploitation est essentiellement agnostique. WRT, la boîte à outils de l'interface graphique - je ne dirais pas que GTK est une boîte à outils "native", etc. la boîte à outils la plus largement utilisée sur la plate-forme avant Ubuntu existait même en raison de la relation susmentionnée avec d'autres composants fondamentaux largement utilisés par toutes les distributions. C'est pourquoi la plupart des applications graphiques Linux sont déjà des applications GTK, et pourquoi, sans plus de contexte, il est logique de dire à un nouvel utilisateur "Vous pouvez aussi bien choisir celui-là", toutes choses étant égales par ailleurs. Mais ce n'est pas grave.
goldilocks
L'utilisation de plusieurs boîtes à outils différentes nécessiterait également beaucoup plus de stockage; Je ne pense pas que cela aurait un impact sur la performance, mais plutôt sur l'espace pour d'autres choses.
DaimyoKirby,
19

Non, il n'y a pas de différence dans la structure interne de tels programmes. GTK et Qt sont des toolkits et des frameworks 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 principaux internes sont d'abord développés. C'est ce qui fait fonctionner le programme. Vous ne voyez jamais le noyau, ils exécutent simplement en arrière-plan. Au-dessus de ce noyau, une interface utilisateur est conçue.

Les développeurs peuvent désormais concevoir l'interface complète à partir de zéro ou réutiliser des conceptions créées par d'autres. Réutiliser le design présente un avantage majeur. Cela permet à tous les programmes de votre ordinateur de se ressembler. Par conséquent, ils utilisent des toolkits GUI. GTK et Qt sont deux kits d’outils graphiques extrêmement courants.

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

Darnir
la source
4

Un autre aspect important à considérer est le lien entre Qt licensing et leur divulgation de licence, qui est explicitement défini pour être librement accessible à la plupart des projets à but non lucratif, mais une relation commerciale est possible et peut avoir des restrictions pour ce cas. Considérant que GTK, déclare explicitement qu'il peut être utilisé librement même dans des applications propriétaires , déclaration 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 de l' interface graphique complexe comptera sur GLADE comme un kit de conception et si votre approche que les suites lien Glade . Il vise à être multi-plateforme, mais peut ne pas être aussi multi-supporté que Qt.

Vass
la source