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

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

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?

Respuesta1

En general, la diferencia desde la perspectiva del usuario debería ser puramente cosmética. Qt y GTK establecen temas de forma independiente (a través de, por ejemplo, qtconfigo gtk-chtheme), pero esto está armonizado 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 es posible que desees preferirlo cuando tengas la opción; una excepción sería 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 probablemente querrás que el sistema utilice exclusivamente GTK.oQt, 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: usar ambas de manera extensiva podría costarle entre 50 y 100 MB adicionales (suposición descabellada).


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 sobrecarga de memoria.

Respuesta2

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

Cuando se escribe un programa gráfico (GUI), primero se desarrollan sus componentes internos principales. Esto es lo que hace que el programa se ejecute. Tu nuncaverel 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 diseños realizados por otros. Reutilizar el diseño tiene una gran ventaja. Permite que todos los programas de su computadora se vean similares. Por lo tanto, utilizan kits de herramientas GUI. GTK y Qt son dos conjuntos de herramientas GUI extremadamente comunes.

GTK es el conjunto de herramientas estándar para GNOME, mientras que KDE utiliza Qt. Desde el punto de vista del usuario, lo único que difiere es la apariencia. El programa sigue siendo el mismo en el fondo.

Respuesta3

Otro aspecto importante a considerar es la licencia Qt.enlace a la divulgación de su licenciaque está explícitamente disponible de forma gratuita para la mayoría de los proyectos sin fines de lucro, pero una relación comercial es posible y podría tener restricciones en ese caso. Considerando que GTK, declara explícitamente que puede ser utilizado libremente incluso enpropiedadaplicacionesdeclaración 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 kit de diseño y de si se adapta a su enfoque.enlace claro. Su objetivo es ser multiplataforma, pero es posible que no tenga un soporte multiplataforma tan amplio como lo es Qt.

Respuesta4

¿Cómo se comparan en cuanto a sus respectivos modelos de objetos y qué tan estrechamente siguen el estándar C++? En mi experiencia limitada, QT parecía un poco complicado con sus generadores de código y reinventaba la rueda con sus propias clases funcionalmente equivalentes para cadenas y clases. En resumen, QT parecía tener más silbidos y campanas, lo cual estoy seguro que muchos encontraron útil, pero también parecía tener una sensación pesada y patentada. Como dije, tenía experiencia limitada con él (y menos aún con Gtk). Me gustaría recibir algunas opiniones sobre cómo se comparan hoy en día, desde la perspectiva de un desarrollador, que se inclina hacia enfoques genéricos para cosas que intentan utilizar estándares de C++ (como STL, cadenas de C++, subprocesos, etc.).

información relacionada