¿Cuál es la diferencia entre las aplicaciones GTK y QT?

54

Muchos paquetes están disponibles en versiones GTK y QT.

  • ¿Cual es la diferencia entre ellos?
  • ¿Hay alguna diferencia en el rendimiento o el método de trabajo?
Pandya
fuente

Respuestas:

41

En general, la diferencia desde la perspectiva del usuario debe ser puramente cosmética. Qt y GTK establecen temas de forma independiente (a través de, por ejemplo, qtconfigo gtk-chtheme), pero esto se armoniza en algunos entornos de escritorio.

GNU / Linux tiende a estar más orientado a GTK que Qt en el sentido de que el primero se usa más comúnmente, por lo que puede preferirlo cuando se le dé la opción; una excepción sería bajo KDE, que usa Qt para sus propias aplicaciones, aunque ninguno de estos factores es muy importante.

Un problema más importante sería en contextos con RAM muy limitada (como en <1/4 GB); En este caso, es probable que desee que el sistema utilice exclusivamente GTK o Qt, pero no ambos. Sin embargo, en la mayoría de las computadoras de escritorio modernas con gigabytes de memoria, esto no es una preocupación, ya que el uso de ambas puede costarle de 50 a 100 MB extra (conjetura).


Tenga en cuenta que también hay diferentes versiones de GTK (2 y 3) y Qt (3 y 4) que todavía se usan ampliamente pero no son compatibles con versiones anteriores (por lo que una aplicación Qt 3 no puede usar bibliotecas Qt 4). Sin embargo, ambas versiones pueden existir en un sistema al mismo tiempo y la consecuencia más grave de esto sería la posibilidad de confusión y un poco más de memoria.

encerrada dorada
fuente
8
Me interesaría mucho saber cómo llegas a la conclusión de que Linux está más orientado a GTK. Linux, por lo general, implica solo el kernel de Linux, que en general no tiene sesgo hacia ninguno de los kits de herramientas, ya que es un kernel del sistema operativo, no un programa de espacio de usuario GUI. Si quisieras implicar GNU / Linux como un sistema operativo, todavía disputaría tu reclamo. Decir que GNU / Linux está más orientado a GTK porque Ubuntu es la distribución más popular es como decir que Christiano Ronaldo es el mejor deportista porque el fútbol es el juego más jugado del mundo. (Yo también lo discutiría)
darnir
10
@darnir Voy a poner el calificador "GNU" ya que me refería al sistema operativo en un sentido coloquial. Defenderé mi tesis de que está más orientado a GTK que a Qt: GTK (que originalmente significaba el "Kit de herramientas GIMP" y GIMP = el Programa de manipulación de imágenes GNU), GIMP y GNOME son todos proyectos GNU y una parte central de su visión (userland) para un sistema operativo, que se combina con el núcleo es lo que históricamente es "linux". Por lo tanto, GTK se desarrolló principalmente para Linux, también es C nativo (frente a C ++ de Qt), mientras que Qt es más una entidad genuinamente multiplataforma.
Ricitos
1
Si bien estaré de acuerdo con usted sobre la historia y la etimología de GTK, esto no implica implícitamente que GNU / Linux esté orientado a GTK. De hecho, lo contrario es cierto y lo confirman sus declaraciones. GTK fue diseñado para Linux, no al revés. Defendería mi tesis afirmando que Linux como kernel y GNU / Linux como sistema operativo son independientes de cualquier kit de herramientas GUI. GTK a menudo se ve en la naturaleza más que Qt debido a la gran dependencia de Ubuntu en él. También ayuda el hecho de que es más ligero en recursos del sistema.
darnir
3
@darnir Sí, el sistema operativo es esencialmente agnóstico WRT el kit de herramientas GUI - No diría que GTK es "el kit de herramientas nativo", etc. Pero te equivocas acerca de por qué "a menudo se ve más en la naturaleza" - GTK el kit de herramientas más utilizado en la plataforma incluso antes de que Ubuntu existiera debido a la relación antes mencionada con otras partes fundamentales utilizadas ampliamente por todas las distribuciones. Esta es la razón por la cual la mayoría de las aplicaciones GUI de Linux ya son aplicaciones GTK, y por qué, sin más contexto para continuar, tiene sentido decirle a un nuevo usuario "Deberías elegir esa", todo lo demás es igual. Pero en realidad no importa.
Ricitos
La utilización de múltiples kits de herramientas diferentes también requeriría mucho más almacenamiento; Sin embargo, no creo que esto afecte el rendimiento, solo el espacio para otras cosas.
DaimyoKirby
19

No, no hay diferencia en la estructura interna de tales programas. GTK y Qt son conjuntos de herramientas y marcos de interfaz de usuario. Son bibliotecas que los desarrolladores usan para diseñar interfaces gráficas.

Cuando se escribe un programa gráfico (GUI), primero se desarrollan sus componentes internos básicos. Esto es lo que hace que el programa se ejecute. Nunca se ve el núcleo, simplemente se ejecutan en segundo plano. Además de este núcleo, se diseña una interfaz de usuario (UI).

Ahora, los desarrolladores podrían diseñar la interfaz completa desde cero o reutilizar los diseños realizados por otros. Reutilizar el diseño tiene una gran ventaja. Permite que todos los programas en su computadora se vean similares. Por lo tanto, usan kits de herramientas de GUI. GTK y Qt son dos kits de herramientas GUI extremadamente comunes.

GTK es el kit de herramientas estándar para GNOME, mientras que KDE utiliza Qt. Desde el punto de vista del usuario, son solo las apariencias las que difieren. El programa sigue siendo el mismo en el fondo.

Darnir
fuente
4

Otro aspecto importante a considerar es el enlace de licencia Qt a su divulgación de licencia, que está explícitamente disponible para la mayoría de los proyectos sin fines de lucro, pero una relación comercial es posible y podría tener restricciones para ese caso. Mientras que GTK, declara explícitamente que se puede usar libremente incluso en aplicaciones propietarias Declaración de 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 aspecto clave del desarrollo complejo de GUI dependerá de GLADE como un kit de diseño y de si se adapta a su enlace glade de enfoque . Su objetivo es ser multiplataforma, pero puede no ser tan multiplataforma compatible como Qt.

Vass
fuente