Вы находитесь на странице: 1из 24

Desktop Is Not Dead!

The Qt Story

Harald Kjølberg
Product Manager, Qt for Application Development
April 11th 2019
History of Applications – Short and Simplified

Desktop Applications

Simple Web Applications

Mobile Applications

Online Applications (SaaS)

2 11 Apri l 2019 © The Qt Company


Why Isn’t Everything Online?

The
Regulations Certification
Reliability Simple
& Stability Things
Security
Offline

Privacy Visibility
Ease of Preference
Access

3 11 Apri l 2019 © The Qt Company


Online and Desktop are Complementary

› There is competition, but this seems to have levelled out

› Applications which started out in the cloud ends up on the desktop

› Different use cases – different versions

4 11 Apri l 2019 © The Qt Company


Qt for Desktops
Qt for Application Development

Qt for Application Development

Desktop & Mobile Platforms:

6 11 Apri l 2019 © The Qt Company


Qt Product Structure

Input

Input
Input

Verticals
Automation Automotive Medical

Baseline Products
Input Qt for Device Creation

Input Qt for Application Development

7 11 Apri l 2019 © The Qt Company


Qt Powers Industry Leading Software on Desktop

› More than 1.000.000 developers (open-source and


commercial)

› 8 out of the top 10 fortune 500 companies use Qt

› Commercial desktop-use grows at about 10% per year

8 11 Apri l 2019 Pres entation title


GUI Technology – Qt Widgets

› Classic GUI elements for desktop-style applications


› Native look
› Styles and Layouts

› Used by 77% for desktop development


› Slightly decreasing

› Not done. Not dead

9 11 Apri l 2019 © The Qt Company


GUI Technology – QML and Qt Quick

› Create rich and fluid user interfaces


› Animations and transition effects Slider
› First-class citizens
Roundbutton
› Set of predefined controls available
› Qt Quick Controls

› Used by 42% for desktop development


› Steadily increasing

Mainwindow

10 11 Apri l 2019 © The Qt Company


QML

Widgets or Qt Quick?

› Targeting only desktops?


› Size and complexity of application
› Traditional business application or modern fluid
Widgets
design?
› User interaction types
› Mouse + keyboard
› Touch, gestures…

11 11 Apri l 2019 © The Qt Company


Qt – More Than a GUI Framework
Add-Ons Development Tools
Qt Mac Extras Qt Quick Controls Qt SVG Qt X11 Extras

Qt Network Qt XML & XML


Active Qt Qt D-Bus Qt Quick Extras Qt UI Tools Qt Creator
Authorization Patterns CPU Usage Analyzer
Cross-platform IDE
Qt Wayland
Qt3D Qt Gamepad Qt NFC Qt Quick Widgets Qt WebChannel
Compositor
Qt Graphical Qt Platform Qt Designer
Qt Android Extras Qt SCXML Qt WebEngine Qt Charts GPU Profiler
Effects Headers GUI Designer
Qt Data
Qt Bluetooth Qt Help Qt Positioning Qt Sensors Qt WebSockets
Visualization
Qt Linguist
Qt Image Qt Serial Bus & Qt Virtual Clang Static Analyzer
Qt Canvas 3D Qt Print Support Qt WebView I18N Toolset
Formats Serial Port Keyboard
Qt Windows Qt 3D Studio
Qt Concurrent Qt Location Qt Purchasing Qt Speech Qt Assistant Qt Quick
Extras Runtime
Documentation Tool Compiler

Essentials
Qt Quick Dialogs Qt SQL moc, uic, rcc
Qt Quick Profiler
Build Tools
Qt Core Qt Multimedia Qt Network Qt Quick Qt Quick Layouts Qt Test
qmake
Qt Multimedia Qt Quick Controls Cross-platform Autotest integration
Qt GUI Qt QML Qt Quick Test Qt Widgets Build Tool
Widgets 2

12 11 Apri l 2019 © The Qt Company


Recent Highlights
Code Quality

Since Qt 5.6.3 Since Qt 5.9.7


More than 5.000 Bugs fixed More than 2.000 Bugs fixed
~29.000 Commits ~12.000 Commits

14 11 Apri l 2019 © The Qt Company


Tooling – Platforms – Languages

15 11 Apri l 2019 © The Qt Company


Qt for Python
GUI
› Solution enabling Python applications to use Qt
› C++ has always been the “Qt language”, With Qt for Python, also
Python becomes a “Qt language”
› Combines best properties of C++ and Python

› Bringing Qt to the Python environment Qt


› It is familiar to Python developers (Qt versions 5.12+)
› Developers can use the tools they are familiar with
Qt for Python

› Fairly simple to port between C++ and Python


› Use Python to create prototypes fast! Python
(Python versions 2.7, 3.5+)
› Port it to C++ later

Python Application

16 11 Apri l 2019 © The Qt Company


WebAssembly Qt for WebAssembly

Run Native Qt Applications in a browser


Enable zero-installation infrastructure

› Utilize the CPU power by native execution


› Zero installation on all form factors (desktop, mobile)
› Use one reliable and performant tool chain
› Embedded targets
› Mobile targets
› Desktops
› Web (browsers)

› Examples in the Qt Blog

17 11 Apri l 2019 © The Qt Company


Qt Design Studio › Qt Photoshop Bridge: Import your UIs from Photoshop to Qt
› Timeline-based animations: Breathing life into your designs
with animations made simple!
› Side-by-side visual and code editor: Modify your designs
visually or with QML - Qt's easy to use declarative language
› Component recycling: Qt turns your assets into QML
components that can be reused in different projects. No code
wasted!
› Dynamic layouts: Makes sure your UI adapts to any screen!
› Built-in and customizable visual effects: Fancy up your graphic
designs!
› Live on-device UI previews: See how your changes affect the
UI directly on your target device!
› Advanced scene editor: Fine-tune your designs to pixel-
perfection
› Ready-made and customizable buttons, switches, dials

18 11 Apri l 2019 © The Qt Company


Qt Widgets

› Actively maintained
› Many bug fixes
› Smaller API additions

› Rewritten accessibility support on Windows


› Now uses Windows UI Automation
› Printing on Linux (with Qt 5.11)

19 11 Apri l 2019 © The Qt Company


QML and Qt Quick

› Many smaller API additions to Qt Quick Controls


2
Slider
› Some larger features
› ECMAScript 7 Roundbutton

› Qt Quick Input handlers


› TableView
› Improvements
› Performance
› Memory consumption
› Start-up time
Mainwindow
Menu

20 11 Apri l 2019 © The Qt Company


Enhancements in all areas of Qt
› Qt Core › Qt 3D
› Qt GUI › Qt Wayland Compositor
› Qt Network › Qt Websockets
› Qt QML › Qt Location
› Qt Quick › Qt Test
› Qt Quick Controls 2
› Qt Serial Bus
› Qt Location
› Qt WebEngine
› Qt Virtual Keyboard
› Qt Bluetooth Full list of all updates in Qt Wiki:
https://wiki.qt.io/New_Features_in_Qt_5.12

21 11 Apri l 2019 © The Qt Company


Conclusions

› Desktop applications are not dead


› Not in the real world – Not for Qt
› Qt covers the stack from desktop to embedded
› Desktop is the ”heart and soul” of Qt
› Active discussions on new features for Qt Widgets
› Qt Quick/QML is just another flavor for the Qt framework, not a
replacement for Widgets

› Qt is a mature open-source project, backed by a focused company


› Used by many well-known brands

22 11 Apri l 2019 © The Qt Company


Q&A
Thank you!

harald.kjolberg@qt.io

Вам также может понравиться