2008-10-14 20 views
21

Me preguntaba cuál debería considerar si necesito el software para ser utilizado en ambas plataformas, Win y Linux y por qué?GTK + o Qt bajo Windows

+0

Estoy buscando más en qué tan difícil también se compilará en Windows cada uno de esos? Sé que QT es bastante similar a compilarlo en Linux. Además, ¿cuál llevará más tiempo codificando el mismo tipo de aplicaciones? –

+0

Mi respuesta, que por alguna razón fue rechazada, indicó que compilar GTK en Windows es difícil. Consume mucho tiempo. No lo recomiendo Qt es una compilación de 2 horas que generalmente no tiene problemas. Aunque la distribución de C++ compilada con visual studio 2005+ tiene sus propios problemas. – mxcl

+0

¿Qué le pasa al asker Mike? Su avatar se puso gris. –

Respuesta

2

Ambos son buenos kits de herramientas. Basaría mi decisión en la licencia. Qt requiere que pague una licencia si la usa en un producto comercial cuando GTK no lo hace.

+12

Por supuesto, esto ya no es cierto. – mxcl

5

GTK + se puede utilizar en casi todos los lenguajes de programación, en C++ (usando gtkmm) en C (GTK +) en C# (con GTK #) en Python (PyGtk). Detrás de GTK tienes Mono Framework, que es una gran implementación de .NET Framework para propósitos de plataforma cruzada. Si quieres usar Gtk #, tienes un gran IDE (MonoDevelop) con un diseñador de GUI muy poderoso. Puede echar un vistazo a www.mono-project.org. Pero aún depende de qué es lo que quieres construir, solo estás buscando herramientas gui, o todo el framework. Y la lógica detrás de las señales/ranuras es la misma en Gtk + y Qt, pero si está usando Gtk #, se transforman en el paradigma de delegados/eventos.

+2

Si está desarrollando software comercial, sería un tonto usar cualquier cosa que no sean las bibliotecas base, es decir. GTK o Qt. Todo lo anterior no tiene garantía de mantenimiento o confiabilidad. Generalmente hablando. – mxcl

+1

@Max PyGTK y GTK # son compatibles para el desarrollo de la aplicación Gnome, por lo que espero que tengan un buen nivel de soporte (equivalente a GTK +). –

+0

Bueno, entonces estás obligado a estar molesto y sorprendido cuando descubras que no es el caso. – mxcl

5

mis $ 0.02:

He usado Qt vez en cuando durante los últimos 4 años, y es, de lejos mis herramientas favoritas de todo lo que he intentado (Win32, MFC, Borland, Java, GTK) . Usé GTK durante unas semanas para probarlo, y no me gustó. Sobre todo fue porque creo que es incómodo usar C en lugar de C++ para aplicaciones de GUI en una PC ... También trabajo integrado, y nunca usaría C++ en un 8051, pero para una gran aplicación de GUI lo prefiero mucho . Si vas a probar GTK, te sugiero que busques en GTKmm, aunque nunca lo he usado.

4

También podría considerar wxWidgets. Nunca he usado ninguno de ellos, pero cuando estaba revisando los kits de herramientas multiplataforma, era el que había decidido probar.

13

Ambas son buenas herramientas que tienen sus ventajas y desventajas.

Una diferencia es el lenguaje de implementación. Qt está en C++, y GTK + está en C. Sin embargo, GTK + tiene enlaces para muchos, muchos otros lenguajes (perl, python, C++, .NET, etc.) por lo que no es un gran problema.

Una ventaja de Qt es que ofrece un rango de funcionalidad un poco más amplio integrado (xml, acceso a la base de datos, programación de red, OpenGL, etc.). GTK + tiene básicamente todas estas cosas dentro de su órbita (por ejemplo, libxml2, librsvg, libsoup, libgda, etc.), pero no son un paquete tan coherente como Qt.

Mi recomendación personal es usar gtkmm, los enlaces de C++ para GTK +. Ofrece un lenguaje orientado a objetos más cómodo para programar, y proporciona casi el mismo rendimiento nativo que usar GTK + de C. (Descargo de responsabilidad: Contribuyo a gtkmm).

+4

Y por supuesto, ahora Qt también es LGPL. – mxcl

+0

Quité el párrafo obsoleto sobre la licencia. – mikerobi

+0

¿GTK parece nativo en Windows, sin embargo? Además, ¿no depende del servidor X? He visto un puerto de Deluge en Windows, y se veía horrible. – sashoalm

23

Packaging GTK y sus dependencias en Windows es un proyecto a tiempo completo en sí mismo. Qt se distribuye mucho más fácilmente ya que no tiene dependencias que no vienen con Windows.

Qt ha sido multiplataforma desde el principio. GTK no siempre ha sido multiplataforma. Tales decisiones fundamentales dan forma al diseño general, y deben hacerse antes de que se escriba cualquier código en mi opinión.

Haría un comentario más, pero estaría cayendo en la especulación, las dos cosas anteriores que sé con certeza.

+2

Hay un [instalador todo en uno para PyGTK 2.24] (http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/). Lo probé y funciona, y las versiones recientes de GTK parecen ser mucho mejores y tienen soporte nativo en Windows. Lo que lo hace comparable con Qt en Windows. – saeedgnu

+0

A menos que adoro GTK en * nix, principalmente debido a su diseño. – saeedgnu

3

tres puntos adicionales en favor de Qt:

  1. Su proyecto hace no tienen que ser GPL; hay muchas otras licencias de código abierto disponibles en el Qt GPL Exception, incluidas BSD y LGPL.
  2. El tema predeterminado de Qt en Windows hace una mejor combinación de trabajo que el tema Wimp de GTK.
  3. Si desea admitir Mac más adelante, tendrá un tiempo mucho más fácil con Qt.
+0

GTK + es compatible con Mac, o al menos está llegando allí. –

+0

Qt es compatible con Mac, Windows, Linux y otras plataformas embebidas en una forma reducida –

+1

de Gtk.org: "GTK + tiene licencia de GNU LGPL 2.1 que permite el desarrollo de software libre y propietario con GTK + sin ningún arancel ni derechos de licencia. " –

3

Preferiría Qt. Como hoy, Qt es de código abierto y gratuito bajo una licencia LGPL más permisiva. Qt está mejor adaptado para Windows y parece más nativo que GTK. Gimp en Windows, por ejemplo, se ve muy extraño, porque la mayoría de sus diálogos no son diálogos de Windows. Qt puede usar diálogos de Ventana nativos como Abrir/Guardar, lo que lo hace sentir mejor como marco. Y sí, Qt es un marco, no solo un widget GUI. No, no estoy anunciando Qt aquí, ya que Qt tiene algo de extraño para un usuario de Windows desde el punto de vista del desarrollo, por ejemplo, Qt está basado en Layout mientras que MFC/.NET está basado en ancla y los administradores de Layout de Qt a veces son extraños. Pero si tengo que elegir entre GTK y Qt, seleccionaré Qt. Además, ahora, Qt viene con muy buen IDE, Qt Creator, que es mi IDE predeterminado de C/C++ para todos los tipos de proyectos (ya que Qt Creator se puede usar como tal).

2

Qt 5.0 ha ganado la guerra. No soy un gran admirador de C++ (prefiero la antigua C), pero debo admitir que el framework Qt es increíble. Trate de escribir un programa GUI con GTK que se ejecute en OSX, Linux, Windows (y pronto iOS y Android) con un aspecto nativo ... ¡Buena suerte!

0

me recomiendan usar Qt porque:

  • Es multiplataforma y y cubre toda la gama de sistemas operativos (incluyendo móviles)
  • Es de código abierto y tiene una velocidad rápida en conseguir una mejor
  • tiene un buen diseñador de la interfaz gráfica de usuario y un IDE muy capaz (Qt Creator)
  • el diseño de la API es excelente y fácil de usar
  • tiene una gran documentación que es fácil de leer
  • que tiene el sistema de traducción de Qt, que le permite tener una aplicación multilingüe
  • El sistema de diseño GUI donde los widgets de cambiar el tamaño de ellos de acuerdo a un diseño que hace que todo sea mucho más fácil
  • El QML le da el poder para crear GUI fantástico con grandes gráficos y animaciones
  • tiene un gran apoyo a la creación de redes y conectividad (zócalo, SSL, www, IPC, ...)
  • tiene QTestLib para probar el código
  • ha unión mucho lengua si no' Quiero usar C++