Qt Contributors Summit 2022 - Program/Keynote with Lars Knoll

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Session Summary

Session Owners

  • Lars Knoll


(Taken by Samuel Gaist)

Special contributor summit as it is the last one as Chief Maintainer

Quick recapitulation based on the Lars's slides:

Qt 6.4

- WebAssembly is fully supported


QML engine

- qmllint and language server improvements

- QML compiler is improving as well

Qt Quick Controls

- Item views are coming along

- iOS Style

Qt Quick 3D

- Physics engine

- Collision detection

- Effects

- Tooling is importing to bring ease of use to all

Qt Multimedia

FFMPEG based cross-platform backend

  - Native backend have all different level of support for most

  - Inconsistent experience for users / developers

  - Fully supported for 6.5

Spatial Audio -> replaces QAudioEngine (5.15)

  - QAudioEngine was QML only

  - Dual implementation

  - Place sound sources in 3D space

  - Headphone spatialisation

  - Surround sound support

HDR video rendering (macOS mainly)

  - Issue with Linux

  - Only for QVideoWidget currently (Quick support WIP)

New items

Qt Speech

  - Text to Speech is back

  - No WASM yet

Permission API

  - Mainly used on mobile and macOS

Qt HTTP server

Qt PDF is back

ICU based codecs in QStringConverter


Qt Creator

- Clang 14 based

- Numerous bug fixed

Qt Design Studio

- Support all of

  Qt Quick

  Qt Controls

  Qt Quick 3D

There will be a session on how to contribute to QDS


- Python script helper to go from qmake to cmake

- Install with pip

- 90-95% of port work likely supported with some tweaking

Qt 6.5 and beyond

Focus areas

Generic feature

  - Compiled

  - Map rendering (Qt Location)

   - improved

   - make it easier to add items on map

   - reduce API removing what was rarely used

Desktop and mobile

  - Modernize styles (Widgets and Quick Controls)

   - Windows 10-11, latest macOS etc.

  - RHI based backing store

  - Chrome OS support

  - Wayland

Accessing data

  - Protobuf and gRPC integration

  - Simplify using REST APIs

  - GraphQL

  The idea is to simplify how to access them rather than build everything from scratch each time.


  - 3D, AR, VR, physics

  Integrate with the work done on spatial audio

  - Toolability

  Make things accessible through GUI rather than coding everything by hand.


  - Improve interaction with Python

Package management

  - Has been pushed back because has been more complex than anticipated

  - Conan

New C++ feature

- C++ 20 -> when can we start requiring C++20 compatible compilers (session later)

- Co-routine (session later)

SPDX license identifiers

- Qt is doing the switch

- 2 lines headers

- More concise


- Welcoming and helpful

- Extremely competent

- Very little flame wars and bikeshedding

- How can we grow the community ?

- New community manager ! Pedro

Web page (contribute.qt-project.org)

- It's for the contributors

  - Processes

  - Stats

  - Need improvements (session for that later)

Community topics

- Ghost maintainers: how do we handle inactive maintainers

- Qt Community

  - How to grow it ?

  - What do to to make people participate ?

  - How to promote different aspects for contributions ?

Chief maintainer

- We need to elect a new one

- Lars has been using Qt for 25 years and 22 year professionally

- Started with Trolltech (11-12 people) 20 years ago

- 200 people with Nokia

- Nokia failed but gave benefits like Open Governance, triple licensing, Qt Creator

- After that, the project started "from scratch" and did quite well given the challenge


FFMPEG: will the new implement replace the old ones ?

   - long term: yes, the first being GStreamer

   - Gstreamer is mainly for static pipelines and has been hard to work with.

   - Next likely with WMF

   - iOS, macOS and Android is not yet clear

   - QNX might be forced to use the native backend because of HW support

   - 6.5 should be default on all platform

If you could magically change/add/remove something in Qt (a module, a class, etc) without any repercussion or people disagreeing with. What would it be?

  - QString is a good one -> UTF8 for QString

  - Split audio handling in its own library

  - In fact nothing much, the architecture is pretty fine as it is

Will FFMPEG be vendored ?

  - Yes against a statically built FFMPEG

  - Supervision in the CI system for security issues

Where are you going ?

  - Small startup in Oslo

  - Distributed 5 perso

  - Joining as partner

  - Chat solutions in business

  - How to make integration easier for tools

  - Different chat solutions jumping between them

  - Maintainer of Qt Multimedia

What do you think about shortening the major release cycle to be able to exploit the evolving C++ features ?

  - Good question

  - Not necessarily a need for a new major each time (C++11 as example)

  - Source incompatibility changes should not happen too often

Is there any other UI framework out there that Qt should keep a close eye in your opinion ?

  - Probably yes, Flutter for mobile, not much on embedded side

  - It's important to look outside of our bubble

  - Tooling

  - Tutorial, IDE ideas, etc...

  - Took a look at Go as next language he'll be using

What do you think about about other language bindings like Rust ?

  - Thinks could be interesting

  - Already have stuff with shiboken to build binding

  - Not many commercial product done with Rust

  - KDAB building Rust/Qt interop