qt qt4 qt-quick

¿''Qt tradicional'' o ''Qt Quick'' para un programa de escritorio?



qt4 qt-quick (4)

Cometió un error: Qt Quick no está disponible solo en una versión beta de Qt. Ha sido parte del lanzamiento oficial de Qt desde la versión 4.7 (aunque cada versión menor mejoró significativamente las funciones ofrecidas por Qt Quick).

Aunque la interfaz de usuario Qt "normal" (con QWidgets y diseños y todo) es más antigua, esto no significa necesariamente que Qt Quick sea inmaduro. Es parte del lanzamiento, después de todo.

Una cosa que no puede señalar en sus pro y sus contras es el rendimiento: las IU Qt "normales" son prebuillt (en su mayor parte, básicamente), y las IU Quick de Qt se basan en la interpretación en tiempo de ejecución de QML y CSS / HTML como usted dice. En general, esto no afectará la velocidad de la aplicación en un sistema de escritorio, pero si tiene un cuello de botella de rendimiento porque está haciendo que la interfaz de usuario sea demasiado elegante, no diga que no le advertí. Aunque tal cuello de botella probablemente signifique que deberías haberte hecho OpenGL desde el principio.

Qt Quick proporciona una forma fácil de crear una interfaz de usuario genial (de todos modos ese es el punto de venta) y le permitirá utilizar efectos más fríos de una manera más fácil que las cosas antiguas.

Nokia acaba de presentar Qt Quick (compilar UI declarativamente como usar CSS / HTML) en las versiones beta recientes de Qt. Consulte esta página de ejemplo , puede crear UI moderna y elegante, ¡muy bien!

Por el contrario, la interfaz de usuario desarrollada por ''Qt tradicional'' parece ser menos sofisticada (puede que esté equivocado, consulte la cláusula de exención de responsabilidad a continuación).

Entonces, mi pregunta es, ¿usaría ''Qt tradicional'' o ''Qt Quick'' para un nuevo programa de escritorio? ¿Por qué?

Mis pensamientos iniciales:

''Qt tradicional'':

Pros:

  • Las tecnologías generales utilizadas serán menos, por lo tanto más simples, si utiliza PySide, solo codificará en Python, no tendrá que meterse con las cosas como CSS / JS en Qt Quick;

  • Es más maduro.

    Contras:

  • ¿Construir UI de fantasía parece ser más difícil?

''Qt Quick'':

Pros y contras: al revés.

Edit : Qt Quick tiene un inconveniente, corríjame si me equivoco, no puede diseñar Qt Quick UI de forma WYSIWYG, ¿verdad?

Descargo de responsabilidad: soy nuevo en Qt, PySide y Python, recientemente he comenzado a evaluar el uso de estas tecnologías para crear programas de escritorio.


Me he estado liando con qml para mi escritorio y personalmente encontré esto:

  • es más fácil crear animaciones que en qt / c ++ / pyqt tradicional (me encantaron las animaciones :)
  • No he revisado todos los ejemplos, pero el tamaño del código de las aplicaciones qml parece más pequeño que las aplicaciones equivalentes en c ++

Problemas que he encontrado con qml

  • tiene poca compatibilidad con el diseño de qml; en este momento, los elementos personalizados no aparecen en el diseñador de qml. Es un gran problema, idealmente, debería obtener un diseñador para crear mi interfaz de usuario y concentrarme en el código. Su diseñador qml todavía necesita algo de trabajo.
  • Se espera que aprenda javascript, ya que es la forma "recomendada" de scripting en qt. Javascript no es fácil como se puede esperar, por ejemplo, aprender python me llevó algunas horas, pero javascript parece superficialmente similar a c, pero algunos de sus conceptos son diferentes. También me pregunto si puedo proteger la propiedad intelectual en una aplicación escrita, solo javascript y qml. (Corrígeme si me equivoco)
  • los widgets nativos no están disponibles en qml, por ejemplo, solo ofrece rectángulos, etc. que combina para formar sus propios widgets.

Esto no me ha impedido jugar con qml y, a medida que madura, adoptaré una actitud de esperar y ver. Actualmente estoy usando qml para parte de mi ui y c ++ para el backend.


No tengo tanta experiencia en los sistemas tradicionales de interfaz de usuario Qt. Pero puedo darte mi experiencia en QtQuick:

  • La interfaz de usuario utilizando QML es más simple.
  • QML le permite desarrollar mejor usando el patrón MVC. Hace vista separada del modelo. Puede cargar diferentes versiones de la interfaz de usuario en tiempo de ejecución.
  • QML permite desarrollar una interfaz de usuario avanzada.
  • Es muy eficaz ahora (utilizando la tecnología QSceneGraph). Se implementa en múltiples hilos de la interfaz de usuario! No estoy seguro de que pueda crear una interfaz de usuario más eficaz con C ++.
  • ¡Los diseñadores de IU pueden desarrollar IU más simple que HTML + CSS + Javascript!
  • Puede desarrollar su elemento de interfaz de usuario personalizado mediante C ++ utilizando clases específicas.
  • QML se basa en OpenGL y en la versión gratuita de Qt debe notarlo.
  • QML tiene un depurador y un perfilador específicos. Depurar en la interfaz de usuario es muy fácil.

Si desea desarrollar su aplicación utilizando un modelo estándar como MVC, QML puede ser más adecuado.
Tienes que tener cuidado con las notas de rendimiento.


Si está utilizando Python, entonces probablemente no esté preocupado por el rendimiento. El Qt tradicional también permite un aspecto elegante a través de QSS. Lo que Qt Quick ofrece es una forma de crear fácilmente una UI (incluso sin el soporte de herramientas que se está introduciendo en 4.8) y usar scripts para que funcione.

También puede crear IU de lujo con Qt tradicional, principalmente a través de QSS y derivando widgets existentes. La mayoría de los ejemplos de Qt no se centran en esto, pero eso no significa que no se pueda hacer. También es probable que ofrezca un mejor rendimiento general, especialmente si está codificado en C ++.

Usaría el Qt tradicional porque estoy más familiarizado con él. Pero esto es subjetivo de todos modos, así que creo que tu pregunta será cerrada.