Muchos paquetes están disponibles en versiones GTK y QT.
- ¿Cuál es la diferencia entre ellos?
- ¿Hay alguna diferencia en el rendimiento o en el método de trabajo?
Respuesta
En general, la diferencia desde la perspectiva del usuario debe ser puramente cosmética. Qt y GTK establecen los temas de forma independiente (por ejemplo, a través de qtconfig
o gtk-chtheme
) pero esto está armonizado por 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 desee preferirlo cuando se le dé la opción; una excepción sería en KDE, que usa Qt para sus propias aplicaciones, aunque ninguno de estos factores es muy importante.
A Un problema más importante sería en contextos con RAM muy limitada (como en < 1/4 GB); en este caso, probablemente querrá 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 un problema – el uso extensivo de ambos puede costarle entre 50 y 100 MB adicionales.
Tenga en cuenta que también hay diferentes versiones de GTK (2 y 3) y Qt (3 y 4 ) todavía se usa ampliamente pero no es compatible 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 seria de esto sería la posibilidad de confusión y un poco más de memoria.
Comentarios
- Me interesaría mucho saber cómo llega 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 ningún sesgo hacia ninguno de los kits de herramientas, ya que es un kernel del sistema operativo, no un programa de espacio de usuario de GUI. Si pretendía insinuar GNU / Linux como sistema operativo, ‘ todavía disputaría su afirmación. 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 ‘ d impugno eso también)
- @darnir Yo ‘ pondré el » GNU » calificador en ya que me refiero al sistema operativo en un sentido coloquial. ‘ defenderé mi tesis de que es más orientado a GTK que a Qt: GTK (que originalmente significaba » GIMP Tool Kit «, 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 (de usuario) de un sistema operativo , que junto con el kernel es lo que históricamente es » linux «. Así que GTK se desarrolló principalmente para Linux, también es C nativo (en comparación con Qt ‘ s C ++), mientras que Qt es más una plataforma cruzada entidad.
- Si bien estaré de acuerdo con usted sobre la historia y 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. Yo ‘ defiendo mi tesis afirmando que Linux como kernel y GNU / Linux como sistema operativo son agnósticos frente a cualquier GUI Toolkit. GTK se ve a menudo en la naturaleza más que Qt debido a la fuerte dependencia de Ubuntu ‘ de él. También ayuda el hecho de que sea más liviano en los recursos del sistema.
- @darnir Sí, el sistema operativo es esencialmente agnóstico WRT el kit de herramientas de la GUI; no diría que GTK es » el » kit de herramientas nativo, etc. Pero usted ‘ está equivocado acerca de por qué » se ve a menudo en la naturaleza más «: GTK era el conjunto de herramientas más utilizado en la plataforma antes de que Ubuntu existiera debido a la relación antes mencionada con otros partes fundamentales ampliamente utilizadas por todas distribuciones. Esta es la razón por la que la mayoría de las aplicaciones de interfaz gráfica de usuario de Linux ya son aplicaciones GTK y por qué, sin más contexto para continuar, tiene sentido decirle a un nuevo usuario » que bien podría elegir ese «, en igualdad de condiciones. Pero realmente no importa.
- El uso de varios conjuntos de herramientas diferentes también requeriría mucho más almacenamiento; Sin embargo, no ‘ creo que esto afectaría el rendimiento, solo el espacio para otras cosas.
Respuesta
No, no hay diferencia en la estructura interna de dichos programas. GTK y Qt son conjuntos de herramientas y marcos 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. Nunca ves 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 pueden diseñar la interfaz completa desde cero o reutilizar diseños hechos por otros. Reutilizar el diseño tiene una gran ventaja. Permite que todos los programas de su computadora tengan un aspecto similar. 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 que difiere es sólo el aspecto. El programa sigue siendo el mismo en el fondo.
Respuesta
Otro aspecto importante a considerar es la licencia Qt enlace a la divulgación de su licencia que está explícitamente configurado para estar disponible gratuitamente 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, establezca explícitamente que se puede usar libremente incluso en aplicaciones propietarias declaració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 de GUI complejo dependerá de GLADE como un kit de diseño y si eso se adapta a su enfoque glade link . Su objetivo es ser multiplataforma, pero es posible que no sea tan compatible con la multiplataforma como Qt.
Respuesta
¿Cómo se comparan en cuanto a sus respectivos modelos de objetos y qué tan de cerca siguen el estándar C ++? en mi limitada experiencia, QT parecía ser un poco hacker con sus generadores de código y reinventando la rueda con sus propias clases funcionalmente equivalentes para cuerdas y clases. En resumen, QT parecía tener más silbidos y campanas, lo cual estoy seguro de que muchos encontrado útil, pero también parecía tener una sensación de propiedad. Como dije, tenía una experiencia limitada con él (y menos aún con Gtk). Me gustaría algunas opiniones sobre cómo se comparan hoy, desde la perspectiva de un desarrollador, que se inclina hacia enfoques genéricos de cosas que intentan usar estándares C ++ (como STL, cadenas C ++, subprocesos, etc.)
QString
nacieron por necesidad hace décadas cuando no había características equivalentes en STL. Ahora que los estándares modernos de C ++ han recogido la mayoría de las características, muchas clases de Qt son simplemente envoltorios finos alrededor de las soluciones nativas de C ++.