2008-09-23 13 views

Respuesta

10

He utilizado Qt en un par de proyectos que hice en C++ en varias plataformas durante un período de siete años. Creo que funciona bastante bien y, definitivamente, fue más rápido para mí desarrollar una aplicación GUI decente en Mac que incursionar en un idioma que no conocía (Objective-C) en ese momento.

Creo que el mecanismo de señal/ranura es un poco raro pero no es horrible. Una vez que lo usas por un tiempo, no es un show stopper. La conexión es fácil de superar (o al menos así fue) y siempre es bueno verificar el retorno de los mismos, ya que su aplicación se pondrá en marcha felizmente y no le dirá que no funcionó.

Nunca he usado jambi.

0

Qt es una biblioteca muy agradable, pero tiene una costosa licencia de desarrollador por asiento, por lo que no siempre es útil para todos los proyectos.

+2

Qt no es una biblioteca, es un marco. – nbro

3

En C++, sus únicas otras alternativas son MFC y wxWidgets. QT/wxWidgets es en gran medida una preferencia personal. Creo que QT es un diseño limpio con buena documentación.
QT cuesta aproximadamente un mes de salario de desarrollador si no lo está usando para GPL.

+1

¡Por supuesto que hay otras opciones además de MFC y wxWidgets! Por ejemplo, ¡hay WTL! –

+0

WTL es bastante abandonado y está demasiado cerca de MFC para mayor comodidad. No estoy seguro de que vaya a elegirlo para otra cosa que no sea una pequeña utilidad. –

+1

Hay una serie de otros kits de herramientas. Fltk, Gtk en particular tienen enlaces C++, pero cualquier kit de herramientas gui con enlaces C es utilizable. –

28

He usado Qt desde hace varios años para el desarrollo comercial y he estado muy contento con él.

Una de las cosas buenas de Qt es que proporciona un gran conjunto de bibliotecas, así como las funciones de la GUI (por ejemplo, análisis XML, hilos, redes), todo en un estilo consistente y multiplataforma. Esto significa que rara vez necesitamos usar otras bibliotecas, aunque usamos el boost para algunas cosas.

Otro factor muy importante para nosotros fue la internacionalización. En una aplicación anterior basada en MFC, tuvimos que mantener 2 versiones localizadas para los dos idiomas que admitimos. En nuestra aplicación basada en Qt solo tenemos una versión.

  • El sistema de traducción Qt, utilizando lingüista es fácil de usar y hace que soporta múltiples idiomas fácil (por supuesto, usted todavía tiene que traducir las cadenas, que es un montón de trabajo!)
  • El sistema de diseño GUI donde el los widgets se redimensionan de acuerdo con un diseño que hace que todo sea mucho más fácil. En diferentes idiomas, la longitud de las cadenas es diferente. Con los widgets de tamaño fijo (como MFC) cada cuadro de diálogo debe ajustarse para cada idioma, de lo contrario, las partes de las etiquetas se cortan. Con Qt cambian de tamaño ellos mismos. Por supuesto, hay casos en que no funciona exactamente bien, pero aún hace que todo sea mucho más fácil.
  • QString hace todo en Unicode y maneja las conversiones desde diferentes códecs muy fácilmente.

Una cosa que ha sido muy valiosa es el acceso a la fuente, aunque esto ciertamente no es exclusivo de Qt. En varias ocasiones, la capacidad de verificar la fuente de Qt ha explicado algún comportamiento extraño o ha dado una pista de cómo lograr algo.

Hemos encontrado algunos errores en Qt, algunos de los cuales se han solucionado después de informar a Trolltech. En otros casos, han sugerido una solución alternativa. Todos estos han sido bastante oscuros y no han tenido un gran impacto en nuestro desarrollo.

Una de las principales desventajas de Qt sería la falta de bibliotecas de terceros para su uso en aplicaciones comerciales.Sin embargo, Qt es bastante completo, por lo que para nosotros no ha sido un gran problema, aunque eso dependerá del tipo de aplicación que esté desarrollando.

No he usado Jambi tampoco.

+0

Hola David, ¿A qué se refieren esas bibliotecas de terceros? ¿Me puedes dar un ejemplo? – Krishnan

+0

Empecé a usar Qt hace un mes, usando el nuevo Qt Quick. La mayor queja hasta el momento es que si comete un error, no lanza excepciones ni informa errores, simplemente no hace lo que quiere sin indicaciones sobre lo que hizo mal. Muchos otros problemas serios también. – Mitch

3

He usado Qt durante más de dos años.

Cosas que me gustan en Qt son:

    programación
  • Fácil interfaz gráfica de usuario (en comparación con MFC), Qt Designer
  • clases de contenedores Niza
  • marco Escena agradable gráficos
  • excelente documentación con ejemplos útiles
  • Soporte de traducción
  • Buena asistencia técnica

Puedo recomendar el Qt Developer Days. Si tienes la oportunidad de participar, ¡hazlo! Muchas conversaciones agradables y muy interesantes allí.

4

Utilicé Qt en un trabajo anterior. Solo tuve el más breve contacto con Qt varios años antes de eso, así que era casi un Qt newb.

Cuando comencé me dijeron que eligiera mi idioma y mi entorno, pero era deseable el soporte multiplataforma. Intenté Qt y Java, e incluso le di a C# una oportunidad solo por el gusto de hacerlo. Me di dos días para evaluar cada opción.

Tal vez estaba un poco predispuesto con mi historial como desarrollador de C++, pero después de dedicarle tiempo a cada opción, Qt era el único que mostraba indicios de ser útil sin una larga curva de aprendizaje.

La documentación provista con Qt y las aplicaciones de ejemplo hicieron que a un desarrollador experimentado le resultara muy fácil pero el principiante de Qt se puso en funcionamiento muy rápidamente. Al final de mi período de prueba, tuve un prototipo/maqueta de UI de la aplicación final. Con Java/Eclipse, Java/SunStudio y C#/VS.net tuve problemas para lograr que algo no trivial sucediera en ese momento.

Me costó un poco acostumbrarme a las señales/slots, pero no fue tan malo, y escribí algunas envolturas simples para afirmar cuando las conexiones no pudieron evitar que los errores tipográficos detuvieran la aplicación. de trabajo

La otra cosa que me gustó es que Qt tenía casi todo lo que necesitaba. Usted lo nombra: almacenamiento, redes, GUI, subprocesos, contenedores. Qt tiene una clase para manejarlo. Lo que en mi humilde opinión es importante porque mezclar bibliotecas a veces puede causar problemas.

Tener el código fuente en Qt fue una gran ventaja, una por el simple interés, pero también me permitió compilar Qt utilizando el compilador y la configuración de mi elección, incluyendo una versión de depuración para usar durante el desarrollo.

También encontré el apoyo de Trolltech para ser bastante bueno. Crucé un par de errores en Qt, uno de los cuales fue corregido y publicado mientras todavía estaba trabajando en el proyecto (solo un trabajo de 6 meses).

Lo único negativo que recuerdo es la dificultad para depurar objetos Qt (usando VS) - hay un complemento Qt para VS que puede examinar objetos Qt pero yo estaba usando la versión gratuita de VS y los complementos no funcionan eso. Pero eso no fue culpa de Qt.

No he usado jambi así que no puedo comentar.

8

Éstos son algunos de mis pros y contras con Qt:

Pros:
multiplataforma
Sé que éste es utilizado siempre, pero después de ir y venir entre Windows y Linux con Qt , es increíble lo poco que tengo que hacer para ponerme en marcha. Creo que esto se debe al hecho de que solo uso Vim con Qt Designer.

QMake
Este es uno de mis aspectos favoritos de Qt. Después de trabajar en wxWidgets, FLTK, etc., me cansé tanto de jugar con diferentes sistemas de compilación y no quiero crear manualmente mis archivos make. Actualmente uso CMake en cualquier cosa que no sea Qt en este momento, pero creo que estoy moviendo lentamente incluso Qt a CMake. Sin embargo, es tan fácil comenzar con QMake.

QTestLib
Miré a un par de otros frameworks de pruebas unitarias en C++ y cuando creé mis pruebas usando QTestLib, se sentía muy similar a NUnit (C#) y en pocos minutos tuve varias pruebas que pasan. También noté que sería muy fácil crear mi propio entorno continuous integration.
Más cercano a Java y .Net en productividad
Lo más importante que oigo/leo decir de C++ es: "Puedo ser más productivo con Java o .Net". Por experiencia personal puedo obtener un prototipo de una aplicación que se ejecuta en Qt usando Vim y Qt Designer, antes de que Eclipse o Visual Studio incluso se carguen. También obtengo un conjunto muy similar de bibliotecas en Qt que tengo en .Net o Java, y si no está allí, puedo aprovechar el código C++ existente.


Contras:
Precio
Este es el factor más importante que se me ocurre en este momento. Sin embargo, el costo vale cada centavo, um si supiera cuántos centavos tenía que ahorrar sin llamar a un representante de ventas. Compré una licencia el día en que tenían su descuento para pequeñas empresas y valió la pena, habría pagado tres veces más y creo que ese es el precio actual.

Desarrollar en cualquier lugar con licencia comercial
Me encantaría poder desarrollar en cualquier plataforma, pero construir y vender para otra plataforma. Por ejemplo, desarrolle en Linux, luego cree e implemente en Windows si solo tiene la licencia comercial de Windows. Por lo que sé, solo puedes desarrollar y crear una aplicación comercial en la plataforma para la que tienes una licencia.

Vendor lock-in
Bueno, esto es más bien una estafa personal. No me gusta estar vinculado a un proveedor específico porque la dirección de la empresa y la dirección del producto me hacen un seguimiento lateral. TrollTech fue comprado por Nokia, es bueno o malo, no lo sé, pero una empresa de ese tamaño puede hacer cosas malas.


Creo que he terminado por ahora :). Oh, no he usado Jambi pero estoy realmente interesado en hacer un par de prototipos de proyectos para descubrir cuán fácil es usar un complemento desarrollado en C++ con Jambi. Especialmente usando Jambi como una interfaz web con plugins C++.

Para ser sincero, no he leído mucho sobre él, por lo que puede ser imposible o muy fácil.

+4

¿qué costo? ¡ahora es LGPL, y GPL ha estado presente desde el primer día! – fengshaun

+0

Originalmente era> 2500GBP/desarrollador en Windows, luego era GPL en Linux (no es mucha ayuda si está haciendo aplicaciones comerciales) y luego se convirtió en LGPL hace aproximadamente un año. –

0

No lo utilice, sin embargo ...

Pro: QT tiene un diseño de 3 fases opcional, donde como WX sólo permite actualmente 2 (creo que van a hacer de 3 fases, simplemente no tiene lo trabajé aún).

Uno de los mayores problemas con el uso de diseños es el texto estático y el ajuste. WX le pregunta qué tan grande es su ancho/alto mínimo y porciones de la pantalla, QT tiene la opción de decir qué tan ancho desea, qué tan alto necesita estar si su ancho de X. Esto le permite expresar el flujo de una página mucho mejor.

Cuestiones relacionadas