Latest posts by Javier Bonilla (see all)
- Cross-compile and deploy Qt 5.12 for Raspberry Pi - 29 September, 2019
- Raspberry Pi, TensorFlow Lite and Qt/QML: image segmentation example - 11 September, 2019
- Coral USB Accelerator, TensorFlow Lite C++ API & Raspberry Pi for Edge TPU object detection - 24 June, 2019
This is a brief post that aims to define and clarify the main Qt 5 framework technologies and tools, where terms such as QML, Qt Quick, Qt Creator and Felgo are introduced.
- Qt framework
- QML – Qt Meta Language
- Qt Creator Integrated Development Environment (IDE)
- Cool! how do I start?
Qt is a cross-platform framework for creating apps for desktop (Linux, Windows & macOS), mobile devices (iOS, Android, Windows Phone) and embedded devices (Raspberry Pi, etc). It is developed by the Qt Company. Qt has a rich set of ready-to-use multi-platform modules for diverse areas such as: multimedia (Qt Multimedia), network and connectivity (Qt Network, Qt Bluetooth, Qt NFC, etc.), graphics (Qt Widgets, Qt Quick, Qt Quick Controls, Qt OpenGL, etc.), input methods, sensors (Qt Sensors), data storage (Qt SQL, Qt XML, etc.) and much more.
Qt libraries are programmed in C++ and traditionally this was the only programming language supported by Qt. However, nowadays the Qt framework can be used in C++, QML together with Javascrypt, and Python.
The Qt framework is dual-licensed under commercial and open source licenses. With respect to the open source licenses, the core of Qt is currently licensed under GPLv3 and LGPLv3. Some modules are only offered under GLPLv3 (such as Qt Charts, Qt Data Visualization, etc.) and there are some tool only offered in the commercial license (for instance Qt for Automation and Qt for Device Creation). Have a look at the list of Qt modules to see under which terms they are licensed.
QML – Qt Meta Language
QML is a markup language for the design of Graphical User Interfaces (GUIs). It is part of the Qt Quick module. QML was designed for targeting mobile devices, providing a fluid user experience, touch screen capabilities and fluid animations. Nevertheless, QML can be also used to design Desktop applications. Being Qt/QML multi-platform you can design and deploy the same app for desktop, mobile and embedded devices.
Qt Creator Integrated Development Environment (IDE)
Qt Creator is multi-platform complete and powerful IDE available for Linux, Windows and macOS. We can design apps based on Qt Widgets or Qt Quick modules.
Felgo is a commercial (there is a free personal license) Standard Development Kit (SDK) based on Qt and integrated in Qt Creator. It facilitates the design and deployment of mobile apps.
Felgo is not restricted to mobile devices, so you can test and prototype your app in your development computer changing the target platform (desktop, Android or iOS), which is certainly faster than compiling and deploying your app to emulators or devices.
Felgo adds live code reloading to Qt Quick apps to see changes in code almost instantaneously. Live code reloading is also supported on Android and iOS devices, so you can design your app on any platform (Linux, Windows and macOS) and have live code reloading on Desktop, iOS, Android or any combination of them at the same time. Felgo provides additional QML components and manage the GUI to be resolution and aspect ratio independent of the device.
Cool! how do I start?
Stay tuned to Mechatronics Blog! because each week we’ll be introducing new tutorials to develop QML apps and how to use them in mechatronics: Arduino, ESP8266, IoT and much more.