Guided overview of software frameworks qt framework

BenCottrell2 71 views 8 slides Jul 27, 2020
Slide 1
Slide 1 of 8
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8

About This Presentation

I walk through details of the Qt framework, explaining what it is, and how it's beneficial, and what drawbacks there are. With this information, developers can make an informed decision about choosing the Qt Framework.


Slide Content

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.