SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Introduction to QML
Introduction to QMLIntroduction to QML
Introduction to QMLAlan Uthoff
 
Lessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML DevicesLessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML DevicesICS
 
Qt multi threads
Qt multi threadsQt multi threads
Qt multi threadsYnon Perek
 
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 4ICS
 
Software Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicSoftware Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicICS
 
QVariant, QObject — Qt's not just for GUI development
QVariant, QObject — Qt's not just for GUI developmentQVariant, QObject — Qt's not just for GUI development
QVariant, QObject — Qt's not just for GUI developmentICS
 
Présentation docker et kubernetes
Présentation docker et kubernetesPrésentation docker et kubernetes
Présentation docker et kubernetesKiwi Backup
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and QtICS
 
Qt Framework Events Signals Threads
Qt Framework Events Signals ThreadsQt Framework Events Signals Threads
Qt Framework Events Signals ThreadsNeera Mital
 
In-Depth Model/View with QML
In-Depth Model/View with QMLIn-Depth Model/View with QML
In-Depth Model/View with QMLICS
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
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 6ICS
 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...Konveyor Community
 
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 RT1170Qt
 

Tendances (20)

Introduction to QML
Introduction to QMLIntroduction to QML
Introduction to QML
 
Lessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML DevicesLessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML Devices
 
Qt multi threads
Qt multi threadsQt multi threads
Qt multi threads
 
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
 
Software Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicSoftware Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business Logic
 
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
 
Introduction to Qt
Introduction to QtIntroduction to Qt
Introduction to Qt
 
Qt Qml
Qt QmlQt Qml
Qt Qml
 
QVariant, QObject — Qt's not just for GUI development
QVariant, QObject — Qt's not just for GUI developmentQVariant, QObject — Qt's not just for GUI development
QVariant, QObject — Qt's not just for GUI development
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
 
Présentation docker et kubernetes
Présentation docker et kubernetesPrésentation docker et kubernetes
Présentation docker et kubernetes
 
Qt Workshop
Qt WorkshopQt Workshop
Qt Workshop
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and Qt
 
Hello, QML
Hello, QMLHello, QML
Hello, QML
 
Qt Framework Events Signals Threads
Qt Framework Events Signals ThreadsQt Framework Events Signals Threads
Qt Framework Events Signals Threads
 
In-Depth Model/View with QML
In-Depth Model/View with QMLIn-Depth Model/View with QML
In-Depth Model/View with QML
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
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
 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
 
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
 

Similaire à Meet Qt 6.0

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 comparisonQt
 
Meet Qt Canada
Meet Qt CanadaMeet Qt Canada
Meet Qt CanadaQt
 
Qt Technology Overview for: MedAcuity
Qt Technology Overview for: MedAcuityQt Technology Overview for: MedAcuity
Qt Technology Overview for: MedAcuityQt
 
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 5thiagomacieira
 
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 moreICS
 
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 Integrationaccount 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 plansIgalia
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertQT-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 GitOpsOlyaSurits
 
Qt for Python
Qt for PythonQt for Python
Qt for PythonICS
 
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 2009Nokia
 
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 QtNokiaAppForum
 
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 3Qualcomm 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 QyotoJeff Alstadt
 

Similaire à Meet Qt 6.0 (20)

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
 
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
 

Plus de 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 qtQt
 
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 DevicesQt
 
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 AppliancesQt
 
Machine learning meets embedded development
Machine learning meets embedded developmentMachine learning meets embedded development
Machine learning meets embedded developmentQt
 
Companion App Design with Qt
Companion App Design with QtCompanion App Design with Qt
Companion App Design with QtQt
 
Qt Core UI, Live Forum
Qt Core UI, Live ForumQt Core UI, Live Forum
Qt Core UI, Live ForumQt
 
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 PythonQt
 
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 COMQt
 
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 dockerQt
 
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 overnightQt
 
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 OverviewQt
 
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 CompanyQt
 
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 2016Qt
 

Plus de 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
 

Dernier

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 

Dernier (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 

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