2010-09-07 8 views
12

Soy bastante nuevo en el dominio del diseño y desarrollo de la GUI. Tengo algo de experiencia previa, pero eso es con Visual Basic.Comparación de herramientas de desarrollo de GUI para Linux

Me gustaría desarrollar una aplicación de GUI razonablemente completa (aunque no de vanguardia) en Linux basada en una aplicación de línea de comandos. eso tengo. Después de haber hecho algunas google, me parece que hay principalmente tres buenas (o tal vez eso es lo que siento) maneras de lograr este objetivo:

  1. GTK + biblioteca con CLARO como el diseñador
  2. biblioteca Qt con QtDesigner como el diseñador
  3. swing de Java con Netbeans

con el fin de resolver sobre uno de los anteriores (o rechazar todos ellos), que tendría que conocer los siguientes aspectos de cada elemento de la lista anterior. Estos aspectos, en orden de prioridad decreciente son:

  1. Licencia: Yo no sería capaz de pagar demasiados dólares aquí ... soporte de idiomas
  2. Programación: Sé C/C++ y Java muy poco .
  3. Facilidad de aprendizaje/uso
  4. Flexibilidad y potencia: Sería muy agradable si la mayoría (si no todas) las funciones que necesito están disponibles en la biblioteca central.
  5. (falta de) las dependencias adicionales: Razonamiento mismo que el número de punto 4
  6. una apariencia a
  7. plataformas soportadas/Portabilidad (esfuerzo necesario para cambiar de plataforma)

Cualquier ideas sobre los temas anteriores serían vale su peso en oro (no me gustaría darme cuenta después de un mes que elegí la herramienta incorrecta para mi trabajo). ¿Hay alguna otra herramienta más adecuada para mi propósito de la que no tengo conocimiento?

Las respuestas puntuales serían de gran ayuda.

EDITAR: Ok, finalmente me he ido con Qt. Simplemente porque es más fácil de aprender y parece más portátil que GTK + (para mí, por supuesto).

Respuesta

14

Qt es su mejor opción.

  1. Los estados de licencia de Qt

    subvenciones Nokia Licenciatario una licencia no exclusiva, derecho libre de regalías para reproducir y distribuir el código objeto de Redistributables para su ejecución en los plataformas especificadas.

    Así que no debería tener problemas acerca de la licencia

  2. Está escrito en/para C++

  3. No es tan difícil de aprender
  4. La biblioteca (aunque modular) contiene todo lo necesario para desarrollar una GUI en toda regla y también algo adicional (XML, redes ...)
  5. No lo sé, lo siento, pero no creo que haya ninguna dependencia (en el lado del cliente)
  6. La apariencia es nativa de la ambiente para el cual se compila la aplicación (es decir ventanas dan & sienta en Windows, OSX mirar & sienten en OSX)
  7. Qt se apoya en una amplia gama de entornos de escritorio
+0

Qt viene junto con innumerables ninguna de pre construidas con widgets de API simple para empezar ... –

+0

Ha habido suerte con Java Swing? – puffadder

+0

@puffadder es solo un gusto personal, pero Swing no me gusta mucho. Entonces no soy la mejor persona para hablar de eso. –

5

Para hacer el caso para GTK:

  1. Licencia LGPL.
  2. escrito en C, pero se puede utilizar con casi cualquier lenguaje de programación, incluyendo C++, Python, Javascript, Haskell, etc. Recientemente, un nuevo lenguaje de programación, Vala, fue desarrollado, que tiene soporte nativo para la GTK objetos, señales y propiedades. Su sintaxis es muy similar a C# y su propósito es permitir el desarrollo muy rápido de aplicaciones que usan GTK. (Eso es porque usarlo en la C original tiende a producir código muy detallado.)
  3. Si entiende principios orientados a objetos (que no son necesariamente todos los que tomaron un curso de Java en la universidad), entonces es fácil de aprender.
  4. La biblioteca se divide en dos partes principales: GLib, la biblioteca de núcleo, y GTK, la biblioteca GUI. GLib tiene muchas características que se necesitan para el desarrollo de aplicaciones: todo tipo de estructuras de datos, hilos, expresiones regulares, clave-valor archivo del analizador, similar a XML analizador de lenguaje de marcado (por completo XML que necesita la biblioteca libxml2 aunque), ansynchronous de E/S , redes. GTK contiene todo lo gráfico.
  5. lo que solía ser que un buen montón de aplicaciones tenía todo el conjunto de bibliotecas de GNOME como una dependencia, pero ese no es el caso más, ya que mucha de la funcionalidad útil se ha movido en GLib y GTK. Debería poder escribir una aplicación con todas las funciones sin dependencias adicionales.
  6. El aspecto y la sensación dependen de la plataforma. En GNOME, GTK básicamente define la apariencia. En Windows, la apariencia y el estilo nativos se emulan casi a la perfección. En OS X, no tanto.
  7. en Windows y OS X que requiere un gran esfuerzo para conseguir las bibliotecas configurados correctamente. OS X es especialmente un fastidio, donde puedes elegir entre ejecutar un servidor X11 o utilizar el backend de Quartz más difícil de configurar. Qt es probablemente más fácil en ese sentido. Sin embargo, el código de su aplicación es completamente multiplataforma y, por lo tanto, no debería requerir ninguna transferencia para ejecutarse en ninguno de estos sistemas.

Espero haber representado con precisión los pros y los contras para usted.

+0

Ya veo ... Ahora, ¿qué es esto wxWidgets? ¿Alguna idea? – puffadder

+0

Nunca lo he usado, por lo que no estoy calificado para comentar. – ptomato

+0

GLib no es parte de GTK. Da la casualidad de que GTK lo usa mucho. – Tshepang

Cuestiones relacionadas