Difference between qt qml and qt fast

Q1: I am confused with qml, quick1.0 and quick2.0. What is the difference between the two.

I am using qt creator 2.8.1 based on qt 5.1.1. I want to develop a desktop program, what technology should I use?

2: How to export data to a fast program? I only find document v 4.7 about qml.

+47
qt qml qt-quick qtquick2
Oct 31 '13 at 0:06
source share
2 answers

EDIT: refer to @TheBootroo for a better answer

Although my answer was accepted by the OP, I want to review (or even) delete my answer.

My answer was based on personal experience regarding Qt 5.2 in 2013, some of which are invalid today:

  • QML is the Qt Meta Language or Qt Modeling Language is the user interface markup language.
  • QtQuick (both QtQuick 1.x and QtQuick 2.x) uses QML as a declarative language for developing user-oriented applications.

Back in Qt 5.2, when you built the Quick Qt App, the important question was whether the QtQuick 1.x or QtQuick 2.x application. This not only affected the components that were available, but also changed the way the application was rendered.

Back in 2013:

  • QtQuick 1.x applications were often chosen if you had to focus on older operating systems (such as Windows XP) or older hardware (such as OLPC), because QML UI components, such as buttons, were displayed by components native to your OS, However, this meant that you were aiming for the lowest overall set of user interface components and that your user interface experience could vary from platform to platform.

  • QtQuick 2.x was chosen for a more consistent cross-platform view, but it required that your platform implement OpenGLES sufficiently, your application may not load. This, unfortunately, limited your application only to the latest computer and devices that implemented OpenGLES.

When I wrote my original answer, it made me recommend QtQuick 1.x in some scenarios over QtQuick 2.x.

However, since then, Qt 5+ now allows you to target ANGLE on Windows, which provides high-performance OpenGL compatibility with Windows desktops by transferring calls to Direct3D, which has much better driver support.

+12
Oct 31 '13 at 12:28
source share

QML is the name of the language (like C ++, which is another language ...)

QtQuick is a toolkit for QML that allows you to develop a graphical interface in QML (there are other tools for QML, some of them are graphical, for example Sailfish Silica or BlackBerry Cascade , and some are not graphical, for example QBS , which is a replacement for QMake / CMake / make ...)

QtQuick 1.x was based on Qt4.x and used the QPainter / QGraphicsView API to draw the scene. QtQuick 2.X was introduced with Qt5.0 based on Scene Graph, a highly optimized OpenGLES2 abstraction layer.

With Qt5.1, the scene graph has been expanded to use multi-threading (QtQuick 2.1) With Qt5.2, the Scene Graph is still much optimized to reduce CPU / GPU calls and memory usage.

The QML mechanism was based on JsCore (Webkit JS engine) in Qt4.x and was reinstalled on V8 (Google Chrome JS engine) with 5.0, but this prohibits its use on mobile phones, especially on iOS, so Qt5.2 introduced a new QML engine named V4VM, created by the guys / for Qt.

There are also QtQuick Controls, which are a set of widgets based on QtQuick. It was originally intended for desktop computers, but Qt 5.4 introduced its own L&F for Android, based on a bare theme. The material theme as well as the iOS theme are under development, but are not available in the current version of Qt (5.5). Some controls were Enterprise only, but in Qt5.5 they were renamed Extras and are now available for all licenses. Another development is called QtQuickControls 2, which completely rewrites the controls in order to get the best performance, aimed at lightweight built-in interfaces, it should be at the preview stage in Qt 5.6.

From Qt5.5, a new module appeared, called QtQuick3D, which makes it possible to create 3D applications / games using the QML language. It does not use SceneGraph, which is too 2D / 2.4D oriented. For this use, the new engine is called FrameGraph.

If you are developing modern applications, you should use Qt5.x + QML 2.x + QtQuick 2.x to touch the most extensive user base.

In Qt, as a rule, an update always follows, because they add more features, more features and platforms.

+130
Nov 07 '13 at 14:01
source share



All Articles