application qt qml qt-quick qtquick2

application - Diferencia entre qt qml y qt quick



qml application (2)

QML es el nombre del idioma (al igual que C ++, que es otro idioma ...)

QtQuick es un kit de herramientas para QML que permite desarrollar una interfaz gráfica en lenguaje QML (hay otros kits de herramientas para QML, algunos son gráficos como Sailfish Silica o BlackBerry Cascade , y algunos no son gráficos como QBS que reemplaza a QMake / CMake / hacer...)

QtQuick 1.x estaba basado en Qt4.x y utilizaba la API QPainter / QGraphicsView para dibujar la escena. QtQuick 2.X se introdujo con Qt5.0, basado en Scene Graph, una capa de abstracción de OpenGLES2, altamente optimizada.

Con Qt5.1, Scene Graph se mejoró para usar multiprocesamiento (QtQuick 2.1) Con Qt5.2, Scene Graph está mucho más optimizado para reducir las llamadas de CPU / GPU y el uso de memoria.

El motor QML se basó en JsCore (motor JS de Webkit) en Qt4.x y se reescribió en V8 (motor JS de Google Chrome) con 5.0, pero esto no permite su uso en teléfonos móviles y especialmente en iOS, por lo que Qt5.2 presentó un nuevo Motor QML, llamado V4VM, creado por / para chicos de Qt.

También están los controles QtQuick, que básicamente son un conjunto de widgets de aspecto nativo, basados ​​en QtQuick. Originalmente fue diseñado para escritorio, pero Qt 5.4 introdujo un L & F nativo para Android, basado en el tema holo. Un tema material, así como un tema de iOS, están en desarrollo pero no están disponibles a partir de la versión actual de Qt (5.5). Algunos controles solo eran Enterprise, pero en Qt5.5 se los renombró como Extras, y ahora están disponibles para todas las licencias. Se está llevando a cabo otro desarrollo, llamado QtQuickControls 2, que es una reescritura completa de controles, para obtener un mejor rendimiento, destinado a interfaces de usuario integradas ligeras, en la etapa Tech Preview en Qt 5.6.

Desde Qt5.5, hay un nuevo módulo llamado QtQuick3D, que da la capacidad de crear aplicaciones / juegos 3D usando lenguaje QML. No usa SceneGraph, que también está orientado en 2D / 2.4D. Un nuevo motor se llama FrameGraph para este uso.

Si desarrolla aplicaciones modernas, debe usar Qt5.x + QML 2.x + QtQuick 2.x, para acceder a la base de usuarios más amplia posible.

Con Qt, en general, siempre siga las actualizaciones porque agregan más funciones, más prestaciones y más plataformas.

P1: Estoy confundido con qml, quick1.0 y quick2.0. Cuál es la diferencia entre ellos.

Yo uso qt creator 2.8.1 basado en qt 5.1.1. Quiero desarrollar un programa de escritorio, ¿qué tecnología debo usar?

P2: ¿Cómo exportar datos al programa rápido? Solo encuentro el documento v 4.7 sobre qml.


EDITAR: Consulte @TheBootroo para obtener una mejor respuesta

Aunque mi respuesta fue aceptada por el OP, quiero revisar (o incluso) eliminar mi respuesta.

Mi respuesta se basó en experiencias personales con respecto a Qt 5.2 en 2013, algunas de las cuales ya no son válidas hoy:

  • QML es Qt Meta Language o Qt Modeling Language es un lenguaje de marcado de interfaz de usuario.
  • QtQuick (tanto QtQuick 1.x como QtQuick 2.x) utiliza QML como lenguaje declarativo para diseñar aplicaciones centradas en la interfaz del usuario.

De vuelta en Qt 5.2 cuando construyó una aplicación Qt Quick, una pregunta importante era si la aplicación era QtQuick 1.x o QtQuick 2.x. Esto no solo afectó a los componentes que estaban disponibles, sino que también alteró la forma en que se procesó la aplicación.

De vuelta en 2013:

  • Las aplicaciones QtQuick 1.x a menudo se elegían si tenía que apuntar a sistemas operativos más antiguos (por ejemplo, Windows XP) o hardware anterior (por ejemplo, OLPC) porque los componentes UI de QML, como los Botones, se representaban con componentes nativos de su sistema operativo. Sin embargo, esto significaba que tenía como objetivo un conjunto de componentes de interfaz de usuario de denominador común más bajo y que su experiencia de IU puede variar de una plataforma a otra.

  • Se eligió la aplicación QtQuick 2.x para una apariencia de plataforma cruzada más consistente, pero, requirió que su plataforma implementara OpenGLES lo suficiente, su aplicación podría no cargarse. Desafortunadamente, esto restringió su aplicación a la computadora y dispositivos más nuevos que implementaron OpenGLES.

Cuando escribí mi respuesta original, esto me llevó a recomendar QtQuick 1.x en algunos escenarios sobre QtQuick 2.x.

Sin embargo, desde entonces, Qt 5+ ahora le permite apuntar a ANGLE en Windows, lo que brinda compatibilidad OpenGL de alto rendimiento con los escritorios de Windows al traducir las llamadas a Direct3D, que tiene un mejor soporte para el controlador.