2011-12-24 16 views
47

Soy nuevo en Qt y no entiendo muy bien la diferencia entre un Qt Quick Project y un Qt Widget Project.Qt Quick vs. Qt Widget

Tengo la esperanza de crear un programa que dibuje un enrejado de hexágonos que el usuario pueda rotar y cizallar, así como también desplazarse y acercarse y alejarse. Eventualmente será un controlador MIDI. ¿Qué tipo de proyecto sería mejor para esto y por qué?

Espero que esto funcione en plataformas de escritorio y móviles.

+1

Pasa un poco de tiempo en el sitio web [Qt Quick] (http://qt.nokia.com/qtquick/) y mira los ejemplos. Si eso es lo que necesitas, úsalo. De lo contrario, obtuve para el proyecto de widget Qt normal, pero las plataformas móviles posiblemente sean un problema. – Mat

Respuesta

28

Qt Quick es una interfaz de usuario declarativa, de estilo de teléfono inteligente con soporte para muchas de las transiciones de animación geniales que son comunes en las aplicaciones de teléfonos inteligentes. Quick también es una buena opción para desarrollar rápidamente un prototipo. Qt Widget es el modelo de interfaz de usuario tradicional orientado a escritorio.

En este momento (anterior a Qt5), falta la compatibilidad con Qt Quick para las características del sistema de escritorio (pero sigue mejorando). No hay tanto soporte para menús, barras de herramientas, diálogos y otros comportamientos de escritorio estándar en Quick, mientras que Widget admite esos elementos extremadamente bien.

¿Desea que su aplicación se vea y se sienta como nativa en las plataformas de escritorio y tableta, o está construyendo una aplicación simple alrededor de su propio widget de IU personalizado? Como dijo Mat, si Qt Quick admite las características que desea, probablemente sea su enfoque más rápido. Si desea construir versiones de escritorio completas, Qt Widget es probablemente su mejor opción.

+0

Me gustaría ambos. :) Usando Qt Widget por ahora. – Anthony

+0

Esta respuesta debe ser eliminada, editada o desviada, ya que ahora estamos en una publicación Qt 5.0, incluso nos estamos acercando a 6.0 y Qt Widgets fueron reemplazados por QML Widgets. –

+0

La respuesta o la pregunta? Parece que estás diciendo que la pregunta ya no es relevante. – AndrewS

4

Qt Rápido se establece por defecto en QML, dialecto declarativo JSON con ECMAscript en línea habilitado. Con los widgets de Qt, el diseñador puede crear hojas de estilo y el desarrollador realiza la codificación nativa de C++.

QML se procesa en tiempo de ejecución. Dentro del marco, todo puede funcionar en conjunto, las diferencias solo agregan flexibilidad a la toma de decisiones del arquitecto de software.

2

En primer lugar, creo que deberías comenzar con Widget. Widget UI ayuda a aprender qt fácilmente, además, si tus experiencias anteriores son sobre cosas de la interfaz que aprenderías fácilmente.

19

Como alguien que desarrolla aplicaciones qt profesionalmente, elegiré qml sobre widgets cualquier día.

Los widgets son buenos para las cosas más básicas, pero una vez que necesitas crear algo que es un poco más elegante, los widgets fallarán muy pronto.

Qml es simplemente mucho más flexible, puede anclar los elementos donde desee en lugar de utilizar el sistema limitado de distribución de widgets. Casi no hay fallas de dependencia de la plataforma, mientras que los widgets están llenos de estos. Y el sistema de enlace de propiedad hace que sea muy fácil mantener su interfaz de usuario sincronizada con su modelo.

+2

Gracias! Decidí comenzar con QML/QtQuick, en función de su experiencia profesional establecida en su respuesta. Solo me doy cuenta de que puedo usar fácilmente * .ui.qml de QtCreator y usarlo directamente en PyQt. ¡Resolví mi configuración inicial de Python + QtQuick! – swdev