SlideShare a Scribd company logo
Qt 6.0
Lars Knoll, Qt Chief Architect, The Qt Company
Tuukka Turunen, SVP R&D, The Qt Company
Wednesday 20th January
Qt 6 Timeline
20 January 2021 © The Qt Company
3
Qt 6 Development Timeline
Research. Setting the initial vision and
scope of Qt 6.
Planning the right timing for next major
version and evolution of Qt 5.x to match
user needs.
2017
Research and development of key
concepts (e.g. Graphics 2020),
timeline for development and releasing
at the end of 2020 set.
2018
Development of graphics, build
system, C++17, new QML, and other
key changes.
Using Qt 5.x to provide a preview as
much as possible.
2019
Main year of Qt 6.0 development.
Requirements of Qt 6.0 finalized and
initial scope for Qt 6.1 and 6.2 set.
Qt 6.0.0 release in December
2020
Release the first feature release Qt
6.1 and the first long-term supported
Qt 6.2 LTS.
More add-ons and platforms.
2021
Package Manager – Additional Libraries for Qt 6
Qt 6.x
Qt essentials +
“essential add-ons”
 Qt Core
 Qt Gui
 Qt Network
 Qt Widgets
 Qt QML
 Qt Quick
 Qt Quick 3D
 Qt Quick
Controls
 Qt Print
Support
 Qt Wayland +
Compositor
 etc etc
Package Manager
Qt user
Supported
Qt add-ons
Other
libraries
from external
repositories
Upcoming
Qt add-ons
Other
libraries from
The Qt
Company
20 January 2021 © The Qt Company
4
› Qt Concurrent
› Qt Core
› Qt Core Compat
› Qt D-Bus
› Qt GUI
› Qt Help
› Qt Network
› Qt OpenGL
› Qt Print Support
› Qt QML
› Qt Quick
› Qt Quick 3D
› Qt Quick Controls
› Qt Quick Layouts
› Qt Quick Timeline
› Qt Quick Widgets
Supported Essential and Add-on Modules in Qt 6
› Qt Bluetooth
› Qt Multimedia
› Qt NFC
› Qt Positioning
› Qt Quick Dialogs: Folder,
Message Box
› Qt Remote Objects
› Qt Sensors
› Qt SerialBus
› Qt SerialPort
› Qt WebChannel
› Qt WebEngine
› Qt WebSockets
› Qt WebView
› Active Qt
› Qt Charts
› Qt Data Visualization
› Qt Lottie Animation
› Qt Quick Dialogs
(File dialog)
› Qt ScXML
› Qt Virtual Keyboard
› Qt Shader Tools
› Qt SQL
› Qt SVG
› Qt Test
› Qt UI Tools
› Qt Wayland
› Qt Wayland Compositor
› Qt Widgets
› Qt XML
› Qt 3D
› Qt Image Formats
› Qt Network Authorization
› M2M package: Qt CoAP
› M2M package: Qt MQTT
› M2M package: Qt OpcUA
Qt 6.0 (released) Qt 6.1 (planned) Qt 6.2 (planned)
20 January 2021 © The Qt Company
5
Designer Tools
Unified 2D and 3D Design Tool
QT DESIGN STUDIO 2.0
› Create 3D UI’s with Qt Quick 3D in
addition to traditional 2D UI design
› Import designs from favorite 2D and 3D tools
› Visual 3D editor to work with the scenes
› Define keyframe-based timeline animations
› Assign 3D effects
› Mix 2D and 3D content seamlessly inside
your application Import
20 January 2021 © The Qt Company
7
Cross Product-line
Development
QT DESIGN STUDIO 2.0
Cortex-M4 MCU (<10 EUR BOM) – 640x480
ARMv7A 32bitlow end MPU (<30 EUR BOM) – 854x480
ARM-v8A 64bit Quad Core high end MPU (<100 EUR BOM) – 960x480
Low-end
Mid-range
High-end
Companion app
 Higher resolution
 2.5D Graphics
 Full Qt Framework
 Advanced animations
 Linux or RTOS
 Qt for MCUs
 Smartphone-like UX
 Basic animations
 Bare metal or
freeRTOS
 Complex/
simple apps
 Win, Mac,
Linux,
Android,
iOS
 WEBASM
 Highest
resolution
 Dual screen
support
 2D/3D
Graphics
 Full Qt
Framework
 Linux or
RTOS
20 January 2021 © The Qt Company
8
Developer Tools
Developer Tooling Fully Supporting Qt 6
QT CREATOR 4.14
› Wizards generate Qt 6 compliant projects
› Inspect Qt 6 types in the debugger
› Editor knows the new QML and C++
language features
› Access Qt 6 documentation and
examples
20 January 2021 © The Qt Company
10
Constantly Improving CMake Support
QT CREATOR 4.14
› Improved kit detection when importing
builds
› Allow to re-use existing build directory
› Out-of-the box support for
QML debugging and profiling
› Applications can still use qmake, if
desired
20 January 2021 © The Qt Company
11
New Tools for C++ Development
QT CREATOR 4.14
› New and improved refactoring operations
› Clang code model to Clang 11
› Tighter integration of Clazy and Clang-
Tidy
› Multiple improvements to C++
development throughout
20 January 2021 © The Qt Company
12
Qt 6
Goals
> Fix architectural limitations in Qt 5
> Improved performance
> House cleaning
> Package management support
> Smaller and modular core product
> Compatibility with Qt 5
20 January 2021 © The Qt Company
14
Core Values
> Cross platform
> Maintainability and compatibility
> Scalable
> Intuitive and easy to use
> Documentation
> Tooling
20 January 2021 © The Qt Company
15
Focus on cleaning up our
code base and architecture,
not on new features
20 January 2021 © The Qt Company
16
Compatibility
> Mostly source compatible with Qt 5
> Some porting required
• Requires some changes to source code
• Requires a recompile
• Deprecated functionality has been removed
> Those changes prepare us for the years to come
20 January 2021 © The Qt Company
17
What’s new in 6.0?
Require C++17
› Require a C++17 compliant compiler
› Use features available in C++17
› Structured bindings
› if constexpr ()
› Template argument deduction rules
› New std library features
› …
20 January 2021 © The Qt Company
19
Containers
> Closed API gaps towards STL containers
• Consistent support for move operations
• Emplace
• initializer_list
> Removed 2G size limitation
• qsizetype
> Default constructors constexpr and non allocating
20 January 2021 © The Qt Company
20
QList and QVector
> Only one class
• QVector is an alias to QList
> Simplifies our API
> Removed performance issues in Qt5 QList
• vector-based data structure
• Improves performance in almost all cases
> Almost 100% source compatible
• Exception: References to stored items not stable under
modification
20 January 2021 © The Qt Company
21
QMap and QHash
> Separated QHash/QMap and QMultiHash/QMultiMap
• Don’t inherit from each other anymore
> Q(Multi)Map implemented on top of std::(multi_)map
• Move support from/to std::map
• Implicitly shared
> New QHash implementation
• Open Adressing
• Fast
• Low memory usage
20 January 2021 © The Qt Company
22
Performance: Hash<int64_t, int64_t>
0
2
4
6
8
10
12
1000 10000 100000 1000000 10000000
Benchmark results (lower is better)
QHash (Qt 6) QHash (Qt 5) std::unordered_map tsl::sparse_map
0
20
40
60
80
100
120
10000 100000 1000000 10000000
Memory usage (bytes/entry)
QHash (Qt 6) QHash (Qt 5) std::unordered_map tsl::sparse_map
Measurements done using
https://github.com/Tessil/hash-table-shootout.git
20 January 2021 © The Qt Company
23
> All text handling Unicode based
• UTF-16 the default string encoding
• UTF-8 the default storage format
> Source code is UTF-8
> Clean up string related classes
• Consistent set
• QUtf8StringView
> Move legacy encoding support out of Qt Core
Unicode & String classes
20 January 2021 © The Qt Company
24
String classes
> QByteArray
• ASCII only, not Latin1
• Meant for storing binary data
> QUtf8StringView class
• Wrapper to tag UTF-8 specific data
> Completed QStringView API
• Supports the const methods of QString
> Removed QStringRef
• Still available in Qt5 compatibility library
20 January 2021 © The Qt Company
25
Regular expressions
> Qt 6 uses QRegularExpression everywhere
• Only one regular expression engine
• Based on PCRE2
> QRegExp has been removed
• Porting to QRegularExpression usually straightforward
• Still available in Qt5 compatibility library
20 January 2021 © The Qt Company
26
Text conversions
> New QStringEncoder/Decoder API
• Value based, stateful
• Supports UTF-8, UTF-16, UTF32, Latin1 and Local 8 bit
• Extensible to support full code conversions after Qt 6.0
> QTextCodec has been removed
• Still available in Qt5 compatibility library
20 January 2021 © The Qt Company
27
Properties and bindings
import QtQuick 2.15
Rectangle {
property int width
property int height: width
property int border: height/10
}
20 January 2021 © The Qt Company
29
Goals
> Bring the best part of QML to all of Qt
> Move binding infrastructure into Qt Core
• Extend existing properties in QObjects with support for bindings
• Add binding support to any other class
> Support lazy binding evaluation
• Mark bindings as dirty when dependency changes
• Only re-evaluate when value is required
> Make it fast
20 January 2021 © The Qt Company
30
struct Rectangle {
QProperty<int> width;
QProperty<int> height;
QProperty<int> border;
Rectangle() {
height.setBinding(Qt::makePropertyBinding(width));
border.setBinding([this]() {
return this->height / 10;
}
}
};
20 January 2021 © The Qt Company
31
template <typename T> class QProperty {
std::function<T()> binding = nullptr;
T data;
public:
T value() const {
if (binding) return binding();
return data;
}
void setValue(const T &newValue) {
if (binding) binding = nullptr;
data = newValue;
}
void setBinding(std::function<T> b) { binding = b; }
};
20 January 2021 © The Qt Company
32
template <typename T>
class QProperty {
T val;
QPropertyBindingData d;
public:
T value() const {
if (d.hasBinding()) d.evaluateIfDirty(this);
d.registerWithCurrenlyEvaluatingBinding();
return this->val;
}
void setValue(const T &t) {
d.removeBinding();
if (this->val == t) return;
this->val = t;
notify();
}
}; 20 January 2021 © The Qt Company
33
QObject complicates the picture
> Existing property infrastructure
• Avoid breaking compatibility with Qt 5
• Extend the existing property()/setProperty() mechanism
> Data hiding
• Data lives in QObjectPrivate
> Avoid overhead if bindings aren’t used
20 January 2021 © The Qt Company
34
Solution
> Binding support a simple addition to the existing system
> Add a getter for a binding interface
• QBindable<PropertyType> bindableProperty();
> Extend Q_PROPERTY with a BINDABLE tag
• Tells moc about the binding interface
> Use Q_OBJECT_BINDABLE_PROPERTY to implement the data storage
• Only works as a member of a QObject
> Low overhead if bindings aren’t used
• One additional pointer in QObjectPrivate
20 January 2021 © The Qt Company
35
class MyObject : public QObject {
Q_PROPERTY(int x GET x SET setX BINDABLE bindableX)
Q_OBJECT_BINDABLE_PROPERTY(MyObject, int, xData)
public:
int x() { return xData; }
void setX(int x) { xData = x; }
QBindable<int> bindableX() { return &xData; }
};
myObject->bindableX().setBinding([otherObject]() {
return otherObject->x() + otherObject->width();
}
20 January 2021 © The Qt Company
36
QMetatype and QVariant
> Common backend for QMetaType and QVariant
• QMetaType can finally handle all types
> High performance, fast code paths
• QMetaType contains one pointer to a handler struct
• Automatic registration
• Automatic support for comparisons and QDataStream
> Deprecated integer-based type id
• Use QMetaType directly
20 January 2021 © The Qt Company
37
struct QMetaTypeInterface {
uint size, alignment;
const char *name;
ConstructFn construct;
DestructFn destruct;
EqualsFn equals;
...
};
class QMetaType {
QMetaTypeInterface *iface;
public:
const char *name() const { return iface->name; }
void construct(void *where) { iface->construct(where); }
};
20 January 2021 © The Qt Company
38
Improvements to moc
> Store and resolve required metatype information at compile time
• No more string lookups for type information
• Faster and more efficient runtime resolution of methods
> Added support for bindable properties
• Dynamically add and remove bindings
20 January 2021 © The Qt Company
39
Rewritten Concurrent
> Simple chaining of computations
• QFuture::then()
> Attach failure and cancellation handlers
• QFuture::connect()
> Convert signals to QFuture objects
> Added a QPromise class
> Support for custom thread pools
20 January 2021 © The Qt Company
40
QByteArray download(const QUrl &url);
QImage loadImage(const QByteArray &data);
void show(const QImage &image);
auto future = QtConcurrent::run(download, url)
.then(loadImage)
.then(show)
.onFailed([](QNetworkReply::NetworkError) {
// handle network errors
});
20 January 2021 © The Qt Company
41
Further improvements
> Multiple improvements in Qt Network
• SSL/TLS improvements
• HTTP/2 support by default
• Write your own plugins for QNetworkAccesManager
> Added Qt5Compat module
• Ease porting to Qt 6
• Contains some deprecated classes from Qt 5
20 January 2021 © The Qt Company
42
Unified Pointer events
> Unified handling of mouse, touch and tablet events
• One common base class: QPointerEvent
• Specializations for mouse, touch and tablet events
• Common data
• Tracking of input device and history of event points
> Resolves recurring issues with touch handling in complex controls
• e.g. touch enabled controls inside Flickable
20 January 2021 © The Qt Company
43
Graphics
Graphics Architecture
OpenGL
(ES)
Vulkan Metal Direct 3D 11
Platform API
RHI
Qt Shader
Tools
Qt Quick Scene Graph
Qt Frameworks
Qt Quick (2D + 3D)
Qt Design Studio
Qt Tools Qt Creator
20 January 2021 © The Qt Company
45
Rendering Hardware Interface
> Abstraction layer for 3D graphics APIs
• OpenGL, Metal, Direct 3D 11, Vulkan
> Abstracts graphical objects
• Materials, Meshes, Shaders, etc.
• Internal API tuned towards the needs of Qt
> Integrated with Qt Platform and Window system abstraction layers
> Qt Quick and Qt Quick 3D are fully ported to RHI
20 January 2021 © The Qt Company
46
Qt Shader Tools
> Support for cross platform shaders
• Write shader once
• Recompile to all graphics APIs
> Support for build time and runtime shader compilation
• Dynamically generate shaders at runtime
• Bake the shaders offline
20 January 2021 © The Qt Company
47
Qt 6 uses the native graphics API of
each operating system
> Efficiently combine 2D and 3D in one scene
• One optimized scene graph
> Enhanced PBR support
• Materials look like they are designed
> Greatly improved support for GlTF2
• Support base spec
• Most of the common extensions
Quick 3D
20 January 2021 © The Qt Company
49
Native look and feel for
Qt Quick Controls on
macOS, Windows and
Linux
Desktop style for Quick
Controls
20 January 2021 © The Qt Company
50
Native look and feel for
Qt Quick Controls on
macOS, Windows and
Linux
Desktop style for Quick
Controls
20 January 2021 © The Qt Company
51
CMake
Supported platforms
> Host platforms
• Windows 10
• macOS 10.15 and 11.0
• Linux (Ubuntu 20.04, CentOS 8.1, SLES 15, OpenSUSE 15.1)
> Target platforms
• All host platforms
• Yocto 3.1 Dunfell
• iOS 13/14
• Android (28 built-time, 21 run-time)
20 January 2021 © The Qt Company
53
Roadmap for other platforms
> macOS on ARM
• Timing not yet confirmed
> Yocto 3.2
• Planned for Qt 6.1
> QNX & INTEGRITY
• Technology Preview with Qt 6.1
• Full support planned for Qt 6.2
20 January 2021 © The Qt Company
54
Release roadmap
 Qt 6.0 December 2020
 Qt 6.1 End of April 2021
 Qt 6.2 LTS End of September 2021
20 January 2021 © The Qt Company
55
Outlook
 Porting the remaining Qt Add-ons to Qt 6
• Delivered through the package manager as they are ready
 Make most properties bindable
 Wider C++ API for Qt Quick and Qt Quick Controls
 Improvements to QML performance
 Improvements in native styling, accessibility and graphics
features
20 January 2021 © The Qt Company
56
Want to Know More?
57
20 January 2021 © The Qt Company
57
Thank you!
info@qt.io
www.qt.io/contact-us
Lars Knoll, Qt Chief Architect, The Qt Company
Tuukka Turunen, SVP R&D, The Qt Company

More Related Content

What's hot

Qt Qml
Qt QmlQt Qml
Qt Qml
Steven Song
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
Dragos Tudor Acostachioaie
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
Emertxe Information Technologies Pvt Ltd
 
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparisonQt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt
 
Introduction to the Qt State Machine Framework using Qt 6
Introduction to the Qt State Machine Framework using Qt 6Introduction to the Qt State Machine Framework using Qt 6
Introduction to the Qt State Machine Framework using Qt 6
ICS
 
Introduction to QML
Introduction to QMLIntroduction to QML
Introduction to QML
Alan Uthoff
 
QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong? QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong?
ICS
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part I
ICS
 
Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2
Emertxe Information Technologies Pvt Ltd
 
Basics of Model/View Qt programming
Basics of Model/View Qt programmingBasics of Model/View Qt programming
Basics of Model/View Qt programming
ICS
 
Try Jetpack Compose
Try Jetpack ComposeTry Jetpack Compose
Try Jetpack Compose
LutasLin
 
Hello, QML
Hello, QMLHello, QML
Hello, QML
Jack Yang
 
Qt multi threads
Qt multi threadsQt multi threads
Qt multi threads
Ynon Perek
 
Introduction to the Qt Quick Scene Graph
Introduction to the Qt Quick Scene GraphIntroduction to the Qt Quick Scene Graph
Introduction to the Qt Quick Scene Graph
ICS
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Qt
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IV
ICS
 
In-Depth Model/View with QML
In-Depth Model/View with QMLIn-Depth Model/View with QML
In-Depth Model/View with QML
ICS
 
UI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QMLUI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QML
Emertxe Information Technologies Pvt Ltd
 
Qt Internationalization
Qt InternationalizationQt Internationalization
Qt Internationalization
ICS
 
Best Practices in Qt Quick/QML - Part 1 of 4
Best Practices in Qt Quick/QML - Part 1 of 4Best Practices in Qt Quick/QML - Part 1 of 4
Best Practices in Qt Quick/QML - Part 1 of 4
ICS
 

What's hot (20)

Qt Qml
Qt QmlQt Qml
Qt Qml
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
 
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparisonQt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
 
Introduction to the Qt State Machine Framework using Qt 6
Introduction to the Qt State Machine Framework using Qt 6Introduction to the Qt State Machine Framework using Qt 6
Introduction to the Qt State Machine Framework using Qt 6
 
Introduction to QML
Introduction to QMLIntroduction to QML
Introduction to QML
 
QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong? QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong?
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part I
 
Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2
 
Basics of Model/View Qt programming
Basics of Model/View Qt programmingBasics of Model/View Qt programming
Basics of Model/View Qt programming
 
Try Jetpack Compose
Try Jetpack ComposeTry Jetpack Compose
Try Jetpack Compose
 
Hello, QML
Hello, QMLHello, QML
Hello, QML
 
Qt multi threads
Qt multi threadsQt multi threads
Qt multi threads
 
Introduction to the Qt Quick Scene Graph
Introduction to the Qt Quick Scene GraphIntroduction to the Qt Quick Scene Graph
Introduction to the Qt Quick Scene Graph
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IV
 
In-Depth Model/View with QML
In-Depth Model/View with QMLIn-Depth Model/View with QML
In-Depth Model/View with QML
 
UI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QMLUI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QML
 
Qt Internationalization
Qt InternationalizationQt Internationalization
Qt Internationalization
 
Best Practices in Qt Quick/QML - Part 1 of 4
Best Practices in Qt Quick/QML - Part 1 of 4Best Practices in Qt Quick/QML - Part 1 of 4
Best Practices in Qt Quick/QML - Part 1 of 4
 

Similar to Meet Qt 6.0

Meet Qt Canada
Meet Qt CanadaMeet Qt Canada
Meet Qt Canada
Qt
 
Qt Technology Overview for: MedAcuity
Qt Technology Overview for: MedAcuityQt Technology Overview for: MedAcuity
Qt Technology Overview for: MedAcuity
Qt
 
Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?
ICS
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
thiagomacieira
 
Qt for S60
Qt for S60Qt for S60
Qt for S60
Mark Wilcox
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing more
ICS
 
Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!
QT-day
 
Developments in the Qt WebKit Integration
Developments in the Qt WebKit IntegrationDevelopments in the Qt WebKit Integration
Developments in the Qt WebKit Integration
account inactive
 
Igalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plans
Igalia
 
The caQtDM powerpoint (ICALEPCS 2013)
The caQtDM powerpoint (ICALEPCS 2013)The caQtDM powerpoint (ICALEPCS 2013)
The caQtDM powerpoint (ICALEPCS 2013)
Robert-Emmanuel Mayssat
 
The caQtDm paper (ICALEPCS 2013)
The caQtDm paper (ICALEPCS 2013)The caQtDm paper (ICALEPCS 2013)
The caQtDm paper (ICALEPCS 2013)
Robert-Emmanuel Mayssat
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
QT-day
 
The Building Blocks of DX: K8s Evolution from CLI to GitOps
The Building Blocks of DX: K8s Evolution from CLI to GitOpsThe Building Blocks of DX: K8s Evolution from CLI to GitOps
The Building Blocks of DX: K8s Evolution from CLI to GitOps
OlyaSurits
 
Qt for Python
Qt for PythonQt for Python
Qt for Python
ICS
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Nokia
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
NokiaAppForum
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Qualcomm Developer Network
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and Qyoto
Jeff Alstadt
 
Kube 1.2
Kube 1.2Kube 1.2
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
Johan Thelin
 

Similar to Meet Qt 6.0 (20)

Meet Qt Canada
Meet Qt CanadaMeet Qt Canada
Meet Qt Canada
 
Qt Technology Overview for: MedAcuity
Qt Technology Overview for: MedAcuityQt Technology Overview for: MedAcuity
Qt Technology Overview for: MedAcuity
 
Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?Qt 6 Chat - Are You Ready?
Qt 6 Chat - Are You Ready?
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
 
Qt for S60
Qt for S60Qt for S60
Qt for S60
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing more
 
Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!
 
Developments in the Qt WebKit Integration
Developments in the Qt WebKit IntegrationDevelopments in the Qt WebKit Integration
Developments in the Qt WebKit Integration
 
Igalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plans
 
The caQtDM powerpoint (ICALEPCS 2013)
The caQtDM powerpoint (ICALEPCS 2013)The caQtDM powerpoint (ICALEPCS 2013)
The caQtDM powerpoint (ICALEPCS 2013)
 
The caQtDm paper (ICALEPCS 2013)
The caQtDm paper (ICALEPCS 2013)The caQtDm paper (ICALEPCS 2013)
The caQtDm paper (ICALEPCS 2013)
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
 
The Building Blocks of DX: K8s Evolution from CLI to GitOps
The Building Blocks of DX: K8s Evolution from CLI to GitOpsThe Building Blocks of DX: K8s Evolution from CLI to GitOps
The Building Blocks of DX: K8s Evolution from CLI to GitOps
 
Qt for Python
Qt for PythonQt for Python
Qt for Python
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and Qyoto
 
Kube 1.2
Kube 1.2Kube 1.2
Kube 1.2
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
 

More from Qt

Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Qt
 
Turn your product into a revenue machine with the new Qt Digital Advertising ...
Turn your product into a revenue machine with the new Qt Digital Advertising ...Turn your product into a revenue machine with the new Qt Digital Advertising ...
Turn your product into a revenue machine with the new Qt Digital Advertising ...
Qt
 
Modern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtModern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qt
Qt
 
Improve Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge DevicesImprove Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge Devices
Qt
 
How are Companies Overcoming the Global Chip Shortage
How are Companies Overcoming the Global Chip Shortage How are Companies Overcoming the Global Chip Shortage
How are Companies Overcoming the Global Chip Shortage
Qt
 
Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!
Qt
 
UI/UX Design Trends in Appliances
UI/UX Design Trends in AppliancesUI/UX Design Trends in Appliances
UI/UX Design Trends in Appliances
Qt
 
Machine learning meets embedded development
Machine learning meets embedded developmentMachine learning meets embedded development
Machine learning meets embedded development
Qt
 
Companion App Design with Qt
Companion App Design with QtCompanion App Design with Qt
Companion App Design with Qt
Qt
 
Qt Core UI, Live Forum
Qt Core UI, Live ForumQt Core UI, Live Forum
Qt Core UI, Live Forum
Qt
 
Top 10 User Interface Trends
Top 10 User Interface Trends Top 10 User Interface Trends
Top 10 User Interface Trends
Qt
 
Embracing Qt for Python
Embracing Qt for PythonEmbracing Qt for Python
Embracing Qt for Python
Qt
 
10 PRINCIPAIS RAZÕES PARA TRABALHAR COM
10 PRINCIPAIS RAZÕES PARA TRABALHAR COM10 PRINCIPAIS RAZÕES PARA TRABALHAR COM
10 PRINCIPAIS RAZÕES PARA TRABALHAR COM
Qt
 
Build and run embedded apps faster from qt creator with docker
Build and run embedded apps faster from qt creator with dockerBuild and run embedded apps faster from qt creator with docker
Build and run embedded apps faster from qt creator with docker
Qt
 
How to create a medical device proof of-concept prototype overnight
How to create a medical device proof of-concept prototype overnightHow to create a medical device proof of-concept prototype overnight
How to create a medical device proof of-concept prototype overnight
Qt
 
Qt Software Development Framework - Medical
Qt Software Development Framework - Medical Qt Software Development Framework - Medical
Qt Software Development Framework - Medical
Qt
 
Webinar- Qt OPC UA - An Overview
Webinar- Qt OPC UA - An OverviewWebinar- Qt OPC UA - An Overview
Webinar- Qt OPC UA - An Overview
Qt
 
User Experience Design for Software Engineers, ICS & The Qt Company
User Experience Design for Software Engineers, ICS & The Qt CompanyUser Experience Design for Software Engineers, ICS & The Qt Company
User Experience Design for Software Engineers, ICS & The Qt Company
Qt
 
A Quick Preview of What You'll See at Qt World Summit 2016
A Quick Preview of What You'll See at Qt World Summit 2016A Quick Preview of What You'll See at Qt World Summit 2016
A Quick Preview of What You'll See at Qt World Summit 2016
Qt
 

More from Qt (19)

Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...
 
Turn your product into a revenue machine with the new Qt Digital Advertising ...
Turn your product into a revenue machine with the new Qt Digital Advertising ...Turn your product into a revenue machine with the new Qt Digital Advertising ...
Turn your product into a revenue machine with the new Qt Digital Advertising ...
 
Modern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtModern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qt
 
Improve Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge DevicesImprove Time to Market for Industrial Edge Devices
Improve Time to Market for Industrial Edge Devices
 
How are Companies Overcoming the Global Chip Shortage
How are Companies Overcoming the Global Chip Shortage How are Companies Overcoming the Global Chip Shortage
How are Companies Overcoming the Global Chip Shortage
 
Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!
 
UI/UX Design Trends in Appliances
UI/UX Design Trends in AppliancesUI/UX Design Trends in Appliances
UI/UX Design Trends in Appliances
 
Machine learning meets embedded development
Machine learning meets embedded developmentMachine learning meets embedded development
Machine learning meets embedded development
 
Companion App Design with Qt
Companion App Design with QtCompanion App Design with Qt
Companion App Design with Qt
 
Qt Core UI, Live Forum
Qt Core UI, Live ForumQt Core UI, Live Forum
Qt Core UI, Live Forum
 
Top 10 User Interface Trends
Top 10 User Interface Trends Top 10 User Interface Trends
Top 10 User Interface Trends
 
Embracing Qt for Python
Embracing Qt for PythonEmbracing Qt for Python
Embracing Qt for Python
 
10 PRINCIPAIS RAZÕES PARA TRABALHAR COM
10 PRINCIPAIS RAZÕES PARA TRABALHAR COM10 PRINCIPAIS RAZÕES PARA TRABALHAR COM
10 PRINCIPAIS RAZÕES PARA TRABALHAR COM
 
Build and run embedded apps faster from qt creator with docker
Build and run embedded apps faster from qt creator with dockerBuild and run embedded apps faster from qt creator with docker
Build and run embedded apps faster from qt creator with docker
 
How to create a medical device proof of-concept prototype overnight
How to create a medical device proof of-concept prototype overnightHow to create a medical device proof of-concept prototype overnight
How to create a medical device proof of-concept prototype overnight
 
Qt Software Development Framework - Medical
Qt Software Development Framework - Medical Qt Software Development Framework - Medical
Qt Software Development Framework - Medical
 
Webinar- Qt OPC UA - An Overview
Webinar- Qt OPC UA - An OverviewWebinar- Qt OPC UA - An Overview
Webinar- Qt OPC UA - An Overview
 
User Experience Design for Software Engineers, ICS & The Qt Company
User Experience Design for Software Engineers, ICS & The Qt CompanyUser Experience Design for Software Engineers, ICS & The Qt Company
User Experience Design for Software Engineers, ICS & The Qt Company
 
A Quick Preview of What You'll See at Qt World Summit 2016
A Quick Preview of What You'll See at Qt World Summit 2016A Quick Preview of What You'll See at Qt World Summit 2016
A Quick Preview of What You'll See at Qt World Summit 2016
 

Recently uploaded

一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 

Recently uploaded (20)

一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 

Meet Qt 6.0

  • 1. Qt 6.0 Lars Knoll, Qt Chief Architect, The Qt Company Tuukka Turunen, SVP R&D, The Qt Company Wednesday 20th January
  • 3. 20 January 2021 © The Qt Company 3 Qt 6 Development Timeline Research. Setting the initial vision and scope of Qt 6. Planning the right timing for next major version and evolution of Qt 5.x to match user needs. 2017 Research and development of key concepts (e.g. Graphics 2020), timeline for development and releasing at the end of 2020 set. 2018 Development of graphics, build system, C++17, new QML, and other key changes. Using Qt 5.x to provide a preview as much as possible. 2019 Main year of Qt 6.0 development. Requirements of Qt 6.0 finalized and initial scope for Qt 6.1 and 6.2 set. Qt 6.0.0 release in December 2020 Release the first feature release Qt 6.1 and the first long-term supported Qt 6.2 LTS. More add-ons and platforms. 2021
  • 4. Package Manager – Additional Libraries for Qt 6 Qt 6.x Qt essentials + “essential add-ons”  Qt Core  Qt Gui  Qt Network  Qt Widgets  Qt QML  Qt Quick  Qt Quick 3D  Qt Quick Controls  Qt Print Support  Qt Wayland + Compositor  etc etc Package Manager Qt user Supported Qt add-ons Other libraries from external repositories Upcoming Qt add-ons Other libraries from The Qt Company 20 January 2021 © The Qt Company 4
  • 5. › Qt Concurrent › Qt Core › Qt Core Compat › Qt D-Bus › Qt GUI › Qt Help › Qt Network › Qt OpenGL › Qt Print Support › Qt QML › Qt Quick › Qt Quick 3D › Qt Quick Controls › Qt Quick Layouts › Qt Quick Timeline › Qt Quick Widgets Supported Essential and Add-on Modules in Qt 6 › Qt Bluetooth › Qt Multimedia › Qt NFC › Qt Positioning › Qt Quick Dialogs: Folder, Message Box › Qt Remote Objects › Qt Sensors › Qt SerialBus › Qt SerialPort › Qt WebChannel › Qt WebEngine › Qt WebSockets › Qt WebView › Active Qt › Qt Charts › Qt Data Visualization › Qt Lottie Animation › Qt Quick Dialogs (File dialog) › Qt ScXML › Qt Virtual Keyboard › Qt Shader Tools › Qt SQL › Qt SVG › Qt Test › Qt UI Tools › Qt Wayland › Qt Wayland Compositor › Qt Widgets › Qt XML › Qt 3D › Qt Image Formats › Qt Network Authorization › M2M package: Qt CoAP › M2M package: Qt MQTT › M2M package: Qt OpcUA Qt 6.0 (released) Qt 6.1 (planned) Qt 6.2 (planned) 20 January 2021 © The Qt Company 5
  • 7. Unified 2D and 3D Design Tool QT DESIGN STUDIO 2.0 › Create 3D UI’s with Qt Quick 3D in addition to traditional 2D UI design › Import designs from favorite 2D and 3D tools › Visual 3D editor to work with the scenes › Define keyframe-based timeline animations › Assign 3D effects › Mix 2D and 3D content seamlessly inside your application Import 20 January 2021 © The Qt Company 7
  • 8. Cross Product-line Development QT DESIGN STUDIO 2.0 Cortex-M4 MCU (<10 EUR BOM) – 640x480 ARMv7A 32bitlow end MPU (<30 EUR BOM) – 854x480 ARM-v8A 64bit Quad Core high end MPU (<100 EUR BOM) – 960x480 Low-end Mid-range High-end Companion app  Higher resolution  2.5D Graphics  Full Qt Framework  Advanced animations  Linux or RTOS  Qt for MCUs  Smartphone-like UX  Basic animations  Bare metal or freeRTOS  Complex/ simple apps  Win, Mac, Linux, Android, iOS  WEBASM  Highest resolution  Dual screen support  2D/3D Graphics  Full Qt Framework  Linux or RTOS 20 January 2021 © The Qt Company 8
  • 10. Developer Tooling Fully Supporting Qt 6 QT CREATOR 4.14 › Wizards generate Qt 6 compliant projects › Inspect Qt 6 types in the debugger › Editor knows the new QML and C++ language features › Access Qt 6 documentation and examples 20 January 2021 © The Qt Company 10
  • 11. Constantly Improving CMake Support QT CREATOR 4.14 › Improved kit detection when importing builds › Allow to re-use existing build directory › Out-of-the box support for QML debugging and profiling › Applications can still use qmake, if desired 20 January 2021 © The Qt Company 11
  • 12. New Tools for C++ Development QT CREATOR 4.14 › New and improved refactoring operations › Clang code model to Clang 11 › Tighter integration of Clazy and Clang- Tidy › Multiple improvements to C++ development throughout 20 January 2021 © The Qt Company 12
  • 13. Qt 6
  • 14. Goals > Fix architectural limitations in Qt 5 > Improved performance > House cleaning > Package management support > Smaller and modular core product > Compatibility with Qt 5 20 January 2021 © The Qt Company 14
  • 15. Core Values > Cross platform > Maintainability and compatibility > Scalable > Intuitive and easy to use > Documentation > Tooling 20 January 2021 © The Qt Company 15
  • 16. Focus on cleaning up our code base and architecture, not on new features 20 January 2021 © The Qt Company 16
  • 17. Compatibility > Mostly source compatible with Qt 5 > Some porting required • Requires some changes to source code • Requires a recompile • Deprecated functionality has been removed > Those changes prepare us for the years to come 20 January 2021 © The Qt Company 17
  • 19. Require C++17 › Require a C++17 compliant compiler › Use features available in C++17 › Structured bindings › if constexpr () › Template argument deduction rules › New std library features › … 20 January 2021 © The Qt Company 19
  • 20. Containers > Closed API gaps towards STL containers • Consistent support for move operations • Emplace • initializer_list > Removed 2G size limitation • qsizetype > Default constructors constexpr and non allocating 20 January 2021 © The Qt Company 20
  • 21. QList and QVector > Only one class • QVector is an alias to QList > Simplifies our API > Removed performance issues in Qt5 QList • vector-based data structure • Improves performance in almost all cases > Almost 100% source compatible • Exception: References to stored items not stable under modification 20 January 2021 © The Qt Company 21
  • 22. QMap and QHash > Separated QHash/QMap and QMultiHash/QMultiMap • Don’t inherit from each other anymore > Q(Multi)Map implemented on top of std::(multi_)map • Move support from/to std::map • Implicitly shared > New QHash implementation • Open Adressing • Fast • Low memory usage 20 January 2021 © The Qt Company 22
  • 23. Performance: Hash<int64_t, int64_t> 0 2 4 6 8 10 12 1000 10000 100000 1000000 10000000 Benchmark results (lower is better) QHash (Qt 6) QHash (Qt 5) std::unordered_map tsl::sparse_map 0 20 40 60 80 100 120 10000 100000 1000000 10000000 Memory usage (bytes/entry) QHash (Qt 6) QHash (Qt 5) std::unordered_map tsl::sparse_map Measurements done using https://github.com/Tessil/hash-table-shootout.git 20 January 2021 © The Qt Company 23
  • 24. > All text handling Unicode based • UTF-16 the default string encoding • UTF-8 the default storage format > Source code is UTF-8 > Clean up string related classes • Consistent set • QUtf8StringView > Move legacy encoding support out of Qt Core Unicode & String classes 20 January 2021 © The Qt Company 24
  • 25. String classes > QByteArray • ASCII only, not Latin1 • Meant for storing binary data > QUtf8StringView class • Wrapper to tag UTF-8 specific data > Completed QStringView API • Supports the const methods of QString > Removed QStringRef • Still available in Qt5 compatibility library 20 January 2021 © The Qt Company 25
  • 26. Regular expressions > Qt 6 uses QRegularExpression everywhere • Only one regular expression engine • Based on PCRE2 > QRegExp has been removed • Porting to QRegularExpression usually straightforward • Still available in Qt5 compatibility library 20 January 2021 © The Qt Company 26
  • 27. Text conversions > New QStringEncoder/Decoder API • Value based, stateful • Supports UTF-8, UTF-16, UTF32, Latin1 and Local 8 bit • Extensible to support full code conversions after Qt 6.0 > QTextCodec has been removed • Still available in Qt5 compatibility library 20 January 2021 © The Qt Company 27
  • 29. import QtQuick 2.15 Rectangle { property int width property int height: width property int border: height/10 } 20 January 2021 © The Qt Company 29
  • 30. Goals > Bring the best part of QML to all of Qt > Move binding infrastructure into Qt Core • Extend existing properties in QObjects with support for bindings • Add binding support to any other class > Support lazy binding evaluation • Mark bindings as dirty when dependency changes • Only re-evaluate when value is required > Make it fast 20 January 2021 © The Qt Company 30
  • 31. struct Rectangle { QProperty<int> width; QProperty<int> height; QProperty<int> border; Rectangle() { height.setBinding(Qt::makePropertyBinding(width)); border.setBinding([this]() { return this->height / 10; } } }; 20 January 2021 © The Qt Company 31
  • 32. template <typename T> class QProperty { std::function<T()> binding = nullptr; T data; public: T value() const { if (binding) return binding(); return data; } void setValue(const T &newValue) { if (binding) binding = nullptr; data = newValue; } void setBinding(std::function<T> b) { binding = b; } }; 20 January 2021 © The Qt Company 32
  • 33. template <typename T> class QProperty { T val; QPropertyBindingData d; public: T value() const { if (d.hasBinding()) d.evaluateIfDirty(this); d.registerWithCurrenlyEvaluatingBinding(); return this->val; } void setValue(const T &t) { d.removeBinding(); if (this->val == t) return; this->val = t; notify(); } }; 20 January 2021 © The Qt Company 33
  • 34. QObject complicates the picture > Existing property infrastructure • Avoid breaking compatibility with Qt 5 • Extend the existing property()/setProperty() mechanism > Data hiding • Data lives in QObjectPrivate > Avoid overhead if bindings aren’t used 20 January 2021 © The Qt Company 34
  • 35. Solution > Binding support a simple addition to the existing system > Add a getter for a binding interface • QBindable<PropertyType> bindableProperty(); > Extend Q_PROPERTY with a BINDABLE tag • Tells moc about the binding interface > Use Q_OBJECT_BINDABLE_PROPERTY to implement the data storage • Only works as a member of a QObject > Low overhead if bindings aren’t used • One additional pointer in QObjectPrivate 20 January 2021 © The Qt Company 35
  • 36. class MyObject : public QObject { Q_PROPERTY(int x GET x SET setX BINDABLE bindableX) Q_OBJECT_BINDABLE_PROPERTY(MyObject, int, xData) public: int x() { return xData; } void setX(int x) { xData = x; } QBindable<int> bindableX() { return &xData; } }; myObject->bindableX().setBinding([otherObject]() { return otherObject->x() + otherObject->width(); } 20 January 2021 © The Qt Company 36
  • 37. QMetatype and QVariant > Common backend for QMetaType and QVariant • QMetaType can finally handle all types > High performance, fast code paths • QMetaType contains one pointer to a handler struct • Automatic registration • Automatic support for comparisons and QDataStream > Deprecated integer-based type id • Use QMetaType directly 20 January 2021 © The Qt Company 37
  • 38. struct QMetaTypeInterface { uint size, alignment; const char *name; ConstructFn construct; DestructFn destruct; EqualsFn equals; ... }; class QMetaType { QMetaTypeInterface *iface; public: const char *name() const { return iface->name; } void construct(void *where) { iface->construct(where); } }; 20 January 2021 © The Qt Company 38
  • 39. Improvements to moc > Store and resolve required metatype information at compile time • No more string lookups for type information • Faster and more efficient runtime resolution of methods > Added support for bindable properties • Dynamically add and remove bindings 20 January 2021 © The Qt Company 39
  • 40. Rewritten Concurrent > Simple chaining of computations • QFuture::then() > Attach failure and cancellation handlers • QFuture::connect() > Convert signals to QFuture objects > Added a QPromise class > Support for custom thread pools 20 January 2021 © The Qt Company 40
  • 41. QByteArray download(const QUrl &url); QImage loadImage(const QByteArray &data); void show(const QImage &image); auto future = QtConcurrent::run(download, url) .then(loadImage) .then(show) .onFailed([](QNetworkReply::NetworkError) { // handle network errors }); 20 January 2021 © The Qt Company 41
  • 42. Further improvements > Multiple improvements in Qt Network • SSL/TLS improvements • HTTP/2 support by default • Write your own plugins for QNetworkAccesManager > Added Qt5Compat module • Ease porting to Qt 6 • Contains some deprecated classes from Qt 5 20 January 2021 © The Qt Company 42
  • 43. Unified Pointer events > Unified handling of mouse, touch and tablet events • One common base class: QPointerEvent • Specializations for mouse, touch and tablet events • Common data • Tracking of input device and history of event points > Resolves recurring issues with touch handling in complex controls • e.g. touch enabled controls inside Flickable 20 January 2021 © The Qt Company 43
  • 45. Graphics Architecture OpenGL (ES) Vulkan Metal Direct 3D 11 Platform API RHI Qt Shader Tools Qt Quick Scene Graph Qt Frameworks Qt Quick (2D + 3D) Qt Design Studio Qt Tools Qt Creator 20 January 2021 © The Qt Company 45
  • 46. Rendering Hardware Interface > Abstraction layer for 3D graphics APIs • OpenGL, Metal, Direct 3D 11, Vulkan > Abstracts graphical objects • Materials, Meshes, Shaders, etc. • Internal API tuned towards the needs of Qt > Integrated with Qt Platform and Window system abstraction layers > Qt Quick and Qt Quick 3D are fully ported to RHI 20 January 2021 © The Qt Company 46
  • 47. Qt Shader Tools > Support for cross platform shaders • Write shader once • Recompile to all graphics APIs > Support for build time and runtime shader compilation • Dynamically generate shaders at runtime • Bake the shaders offline 20 January 2021 © The Qt Company 47
  • 48. Qt 6 uses the native graphics API of each operating system
  • 49. > Efficiently combine 2D and 3D in one scene • One optimized scene graph > Enhanced PBR support • Materials look like they are designed > Greatly improved support for GlTF2 • Support base spec • Most of the common extensions Quick 3D 20 January 2021 © The Qt Company 49
  • 50. Native look and feel for Qt Quick Controls on macOS, Windows and Linux Desktop style for Quick Controls 20 January 2021 © The Qt Company 50
  • 51. Native look and feel for Qt Quick Controls on macOS, Windows and Linux Desktop style for Quick Controls 20 January 2021 © The Qt Company 51
  • 52. CMake
  • 53. Supported platforms > Host platforms • Windows 10 • macOS 10.15 and 11.0 • Linux (Ubuntu 20.04, CentOS 8.1, SLES 15, OpenSUSE 15.1) > Target platforms • All host platforms • Yocto 3.1 Dunfell • iOS 13/14 • Android (28 built-time, 21 run-time) 20 January 2021 © The Qt Company 53
  • 54. Roadmap for other platforms > macOS on ARM • Timing not yet confirmed > Yocto 3.2 • Planned for Qt 6.1 > QNX & INTEGRITY • Technology Preview with Qt 6.1 • Full support planned for Qt 6.2 20 January 2021 © The Qt Company 54
  • 55. Release roadmap  Qt 6.0 December 2020  Qt 6.1 End of April 2021  Qt 6.2 LTS End of September 2021 20 January 2021 © The Qt Company 55
  • 56. Outlook  Porting the remaining Qt Add-ons to Qt 6 • Delivered through the package manager as they are ready  Make most properties bindable  Wider C++ API for Qt Quick and Qt Quick Controls  Improvements to QML performance  Improvements in native styling, accessibility and graphics features 20 January 2021 © The Qt Company 56
  • 57. Want to Know More? 57 20 January 2021 © The Qt Company 57
  • 58. Thank you! info@qt.io www.qt.io/contact-us Lars Knoll, Qt Chief Architect, The Qt Company Tuukka Turunen, SVP R&D, The Qt Company