Qt Framework GUIDED OVERVIEW OF SOFTWARE FRAMEWORKS
WHAT WE’LL BE GOING THOUGH • Background • Tool architecture diagram • Reasons to use it • A simple use case example • Drawbacks
QT • C++ Based, with support for other languages including QML and JavaScript (often used together) • Signals and slots mechanism, an extension to C++, generated by processing source files through Qt’s Meta Object Compiler tool • Been around a long time, began as a commercial framework in the 90’s, and now become more popular since being, more recently, made open-source • Next version will use CMake exclusively (see https://lists.qt- project.org/pipermail/development/2018- October/034023.html)
Qt Creator (IDE Application) Source Code Qt Libraries Target Executable Compiler/Linker Build System qmake or CMake Qt Deployment Tool User Settings
WHY SHOULD YOU USE QT • It’s free and opensource with much of it licensed under the GNU LGPL license allowing usage of Qt shared libraries with a closed source application. • No annoying splash screen, unlike Felgo or Unity • Truly cross-platform and allows a more uniform user experience across platforms thanks to the plugin abstraction architecture • Usable in other IDE’s, especially as Qt already has modules working with CMake. They also ship a plugin for Visual Studio (all product tiers). • Next-gen GPU scenegraph engine provided by the Quick module. • Already used in opensource programs including: VirtualBox, VLC, Wireshark, Musescore. • Targeted libraries for most major desktop, mobile and embedded systems.
HELLO QUICK • A simple App using the same code base targeted to build for different platforms, showcasing the application engine class provided as part of the Quick module. • The engine renders every item to a buffer in passes using hardware accelerated API’s; OpenGL/ES on Android, OpenGL on Windows.
DRAWBACKS • Some platforms may require some additional platform specific code. IE: Android needing a JNI call for launching an Intent. Luckily Qt Creator let’s you modify the other App files passed on to Gradle, so you can write additional Java classes to go along with Qt’s “boilerplate” Java classes. • Qt Quick designer plugin for QtC is still a WIP, it’s not perfect and crashes sometimes. • Runtime libraries contributing to larger installations exceeding >30 Mb compared to programs using more lightweight libraries like SDL or raw Windows API which measure in k/bytes, or even a .NET executable which is just as small. • C++ can be hard. • Some modules have a different license attached to them, other than GNU LGPL, such as GPL, which may prohibit usage in closed source programs, not even allowing dynamic linking.
CLOSING REMARKS • It’s not perfect but it’s improving continually in these areas (to mention a few): • CMake support • Android deployment • Ideal if you want to develop applications more quickly with C++, compared to using smaller libraries like SDL. • Great for building traditional applications.

Guided overview of software frameworks qt framework

  • 1.
    Qt Framework GUIDED OVERVIEWOF SOFTWARE FRAMEWORKS
  • 2.
    WHAT WE’LL BEGOING THOUGH • Background • Tool architecture diagram • Reasons to use it • A simple use case example • Drawbacks
  • 3.
    QT • C++ Based,with support for other languages including QML and JavaScript (often used together) • Signals and slots mechanism, an extension to C++, generated by processing source files through Qt’s Meta Object Compiler tool • Been around a long time, began as a commercial framework in the 90’s, and now become more popular since being, more recently, made open-source • Next version will use CMake exclusively (see https://lists.qt- project.org/pipermail/development/2018- October/034023.html)
  • 4.
    Qt Creator (IDE Application) SourceCode Qt Libraries Target Executable Compiler/Linker Build System qmake or CMake Qt Deployment Tool User Settings
  • 5.
    WHY SHOULD YOUUSE QT • It’s free and opensource with much of it licensed under the GNU LGPL license allowing usage of Qt shared libraries with a closed source application. • No annoying splash screen, unlike Felgo or Unity • Truly cross-platform and allows a more uniform user experience across platforms thanks to the plugin abstraction architecture • Usable in other IDE’s, especially as Qt already has modules working with CMake. They also ship a plugin for Visual Studio (all product tiers). • Next-gen GPU scenegraph engine provided by the Quick module. • Already used in opensource programs including: VirtualBox, VLC, Wireshark, Musescore. • Targeted libraries for most major desktop, mobile and embedded systems.
  • 6.
    HELLO QUICK • Asimple App using the same code base targeted to build for different platforms, showcasing the application engine class provided as part of the Quick module. • The engine renders every item to a buffer in passes using hardware accelerated API’s; OpenGL/ES on Android, OpenGL on Windows.
  • 7.
    DRAWBACKS • Some platformsmay require some additional platform specific code. IE: Android needing a JNI call for launching an Intent. Luckily Qt Creator let’s you modify the other App files passed on to Gradle, so you can write additional Java classes to go along with Qt’s “boilerplate” Java classes. • Qt Quick designer plugin for QtC is still a WIP, it’s not perfect and crashes sometimes. • Runtime libraries contributing to larger installations exceeding >30 Mb compared to programs using more lightweight libraries like SDL or raw Windows API which measure in k/bytes, or even a .NET executable which is just as small. • C++ can be hard. • Some modules have a different license attached to them, other than GNU LGPL, such as GPL, which may prohibit usage in closed source programs, not even allowing dynamic linking.
  • 8.
    CLOSING REMARKS • It’snot perfect but it’s improving continually in these areas (to mention a few): • CMake support • Android deployment • Ideal if you want to develop applications more quickly with C++, compared to using smaller libraries like SDL. • Great for building traditional applications.