Skip to content

Friday, 13 March 2026

Friday, 13 March 2026

KDE today announces the release of KDE Frameworks 6.24.0.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this version

Attica
  • QtPlatformDependent: hide static thread local var in accessor. Commit.
  • Delete QtPlatformDependent if needed. Commit.
  • QtPlatformDependent: Simplify NAM handling. Commit.
Baloo
  • [Extractor] Remove Document from FailedIdDb on success. Commit.
  • [Extractor] Open the DB in ReadWrite mode from the beginning. Commit. Fixes bug #515918
  • [Engine] Protect against opening a ReadOnly database in ReadWrite mode. Commit.
  • Add missing include for syscall(). Commit.
Breeze Icons
  • Fix kleopatra-symbolic icon. Commit.
  • Create symbolic version of krfb icon. Commit.
Extra CMake Modules
  • With get_filename_component use DIRECTORY instead of legacy alias PATH. Commit.
  • KDECompilerSettings: Add option to force asserts. Commit.
KArchive
  • 7zip: insert al the values at once instead of one by one. Commit.
  • KCompressionDevice: avoid asserting on using unbuffered open. Commit.
KAuth
  • Fix memory leaks in BackendsManager. Commit.
  • Enable LSAN in CI. Commit.
KCalendarCore
  • With get_filename_component use DIRECTORY instead of legacy alias PATH. Commit.
  • Fix wrong iCal component parenting when serializing timezone information. Commit.
  • Fix memory leaks in unit tests. Commit.
KCMUtils
  • Mark Kirigami QML module as dependency. Commit.
KCodecs
  • [KEncodingProber] Replace nsCharSetProber raw pointer with unique_ptr. Commit.
  • [KEncodingProber] Replace SMModel external with internal linkage. Commit.
  • [KEncodingProber] Replace nsCodingStateMachine raw pointer with unique_ptr. Commit.
  • [KEncodingProber] Remove unused header files. Commit.
  • [KCharsets] Remove no longer used include. Commit.
  • [KCharsets] Verify entity table is sorted at build time. Commit.
  • [KCharsets] Fix sort order in entity table. Commit.
  • [KCharsets] Add benchmark for entity lookup. Commit.
  • [KCharSets] Specify the fromEntity input format more explicitly. Commit.
  • [KCharSets] Fix numeric encoding for toEntity(...). Commit.
  • [KCharSetsTest] Move test class declaration to implementation file. Commit.
  • [KEncodingProber] Switch state machine tables to plain uint8_t. Commit.
  • [KEncodingProber] Remove runtime unpack state machine. Commit.
  • [KEncodingProber] Use same class table for UTF16 BE and LE state models. Commit.
  • [KEncodingProber] Fix reset() method. Commit.
  • [KEncodingProber] Actually check if reset() works. Commit.
  • [KEncodingProber] Reduce variable scope. Commit.
  • Remember where to re-try RFC 2047 word decoding. Commit.
  • [KEncodingProber] Default empty constructors/desctructors. Commit.
  • [KEncodingProber] Remove unused unexported member functions. Commit.
  • [KEncodingProber] Remove unused member variable. Commit.
  • [KEncodingProber] Remove no longer used include. Commit.
  • [KEncodingProber] Drop declaration of unused GetDistribution method. Commit.
KConfig
  • Fix bounds check in KConfigPrivate::expandString. Commit.
  • Kdesktopfile: do not needlessly cascade desktop files. Commit.
  • Add oss-fuzz integration. Commit.
  • Remove old, commented out code. Commit.
  • With get_filename_component use DIRECTORY instead of legacy alias PATH. Commit.
  • KDesktopFileTest: Update testActionGroup. Commit.
  • KDesktopFile: Check for Name since it is required field. Commit. Fixes bug #515694
KConfigWidgets
  • ShortcutStyleDelegate: Init styleOption. Commit.
  • KRecentFilesAction: Avoid temporary allocations. Commit.
  • KRecentFilesAction: Avoid allocation when reading/writing config. Commit.
KCoreAddons
  • Autotests: increased safety margins for unstable tests. Commit.
KCrash
  • Metadata: make sure the KCrashComplete group has an entry. Commit. Fixes bug #516658
  • Avoid using qEnvironmentVariableIntegerValue. Commit.
KDeclarative
KFileMetaData
  • Ffmpegextractor: Extract Artist metadata. Commit.
  • Fix finding of poppler-version.h (Bad include). Commit.
KGuiAddons
  • Clipboard: Use buffered writes for data transfer. Commit.
  • Add manual large clipboard tests. Commit.
  • Ksysteminhibitor: Support Windows through PowerCreateRequest API. Commit.
  • Remove unneeded Qt version check. Commit.
  • Kiconutils: remove now unnecessary Qt version check. Commit.
  • Clipboard: Hold mutex before dispatching any wayland events. Commit. Fixes bug #515465
  • Mark WindowInsetsController as singleton in the documentation. Commit.
  • CMake: Find Qt6::GuiPrivate when USE_DBUS is enabled. Commit.
  • KKeySequenceRecorder: Accept some more keys that can be used with Shift. Commit.
KHolidays
  • Add more holidays to Bulgaria. Commit.
  • Quiet compiler warnings using inline pragmas. Commit.
  • DE: From 1954 to 1990, there was a “Tag der deutschen Einheit” (note the lowercase “d” in “deutschen”) in West Germany. Commit.
  • DE: Before 1990, there was no "Tag der Deutschen Einheit". Commit.
  • DE: Before 1990, there was no "Tag der Deutschen Einheit". Commit.
  • Generate the bison/flex code. Commit.
KI18n
  • KI18N_WRAP_UI macro: drop now unneeded support for unique image data names. Commit.
  • KI18N_WRAP_UI macro: inject klocalizedstring.h include by uic argument. Commit.
KIdletime
  • Remove unneeded Qt version check. Commit.
KImageformats
  • JP2: fix possible Undefined-shift. Commit.
  • IFF: fix buffer read overflow. Commit.
  • Fix Heap-buffer-overflow WRITE. Commit.
  • Fixed excessively frequent warning messages. Commit.
  • Ossfuzz: update aom, libavif, openjpeg. Commit.
  • ANI: fix possible QByteArray allocation exception. Commit.
  • Jxl: adjust metadata size limits. Commit.
  • RGB: fix a possible exception on the new. Commit.
  • TGA: fix Undefined-shift. Commit.
  • PSD: improve conversion sanity checks. Commit.
  • IFF: fix compilation warnings. Commit.
  • ANI: check for array allocation size. Commit.
KIO
  • Refactor and improve paste dialogs. Commit.
  • Add title for dialogs opened when pasting content. Commit.
  • KNewFileMenu: Strip proper ellipsis, too. Commit.
  • KFileItemDelegate. Commit.
  • Trash: fix typo and use correct device id for home dev. Commit.
  • Visual changes to KFileWidgets to bring it closer to Dolphin. Commit. Fixes bug #516063
  • Widgets: Make use of nanosecond timestamps when appropriate. Commit.
  • Workers: Populate nanosecond timestamps in KIO workers. Commit.
  • Core: Extend UDSEntry with nanosecond precision timestamps. Commit.
  • FilePreviewJob: Stat MountId and use it to look up the mount. Commit.
  • KMountPoint: Add findByMountId. Commit.
  • Filewidgets/placesview: add mountpoint tooltips for network mounts. Commit.
  • KFileItemActions: Use OpenUrlJob::isExecutableFile for "Run executable". Commit.
  • Kfileitemactions: Add i18n context inmenu. Commit.
  • Trashimpl: use mnt_id as trashId instead of dev_id. Commit. Fixes bug #513350. Fixes bug #386104. See bug #490247
  • Kmountpoint: expose mnt_id_unique and isPseudoFs. Commit.
  • KFileItemActions: Add API for service menu keyboard shorcut. Commit.
  • Drop Worker::workerProtocol. Commit.
  • Kpropertiesdialog: Use MIME type we already have for default icon. Commit.
  • Core: Drop unused code. Commit.
  • Filepreviewjob: Add timeout. Commit. Fixes bug #504067
  • Deleteortrashjob: Remember whether AutoErrorHandling was enabled. Commit.
  • Deleteortrashjob: Don't overwrite job delegate, if it exists. Commit.
  • Gui/openurljob: Stops job on missing Type in desktop files. Commit.
  • Core/mimetypefinderjob: Fix missing early return in KIO::MimeTypeFinderJobPrivate::scanFileWithGet. Commit.
  • Trashsizecache: Fix look up of directory size cache. Commit. See bug #434175
  • Drop WorkerConfig::setConfigData. Commit.
  • Simplify SimpleJob::slotMetaData. Commit.
  • Drop special handling for internal metadata. Commit.
  • Storedtransferjob: Drop secret OverriddenPorts option. Commit.
Kirigami
  • Workaround crash due to QTBUG-144544. Commit. Fixes bug #514098
  • Platform: Deprecate PlatformTheme::useAlternateBackgroundColor. Commit.
  • Platform: Move useAlternateBackgroundColor from Theme to StyleHints. Commit.
  • Platform: Introduce StyleHints as common API for extra style behaviour. Commit.
  • InlineViewHeader: Create a template and utilize it. Commit.
  • NavigationTab Bar/Button: Create templates. Commit.
  • Heading: Create a template, base control on top of it. Commit.
  • Mark QML singletons in documentation. Commit.
  • Remove duplicate since documentation. Commit.
  • Add missing documentation module dependency. Commit.
  • Autotests: Mark test_absolutepath_recoloring of tst_icon.qml as skipped. Commit.
  • Controls: Port kirigamicontrolsplugin to use Qt::StringLiterals. Commit.
  • Controls: Use componentUrlForModule for looking up controls files. Commit.
  • Platform: Port BasicTheme to use StyleSelector::componentUrlForModule. Commit.
  • Platform: Greatly simplify StyleSelector::styleChain. Commit.
  • Platform: Deprecate componentUrl, rootPath and resolveFileUrl in StyleSelector. Commit.
  • Platform: Simplify StyleSelector::resolveFilePath. Commit.
  • Platform: Add StyleSelector::componentUrlForModule. Commit.
  • Move all controls in own import. Commit.
  • Fix Kirigami.InputMethod.willShowOnActive. Commit.
  • Fix placeholder. Commit.
  • Reduce text duplication for shortcut tooltips in action toolbar. Commit. Fixes bug #515958
  • Show keyboard shortcut in action toolbar tooltips. Commit.
  • Work around Qt bug causing kirigami components to not load when multiple qml engines are involved. Commit.
KJobWidgets
  • Don't show empty error notifications in KNotificationJobUIDelegate. Commit.
KService
  • Make updateHash slightly faster. Commit.
  • Ksycoca: do not allow for recursive repairs. Commit. Fixes bug #516426
  • Kservice: correctly type the unused legacy field as 8 bits. Commit.
  • Ksycocafactory: do not crash when failing to find a factory stream. Commit.
  • Ksycocafactory: guard against integer underflow. Commit.
  • Enable LSAN in CI. Commit.
  • Fix KServiceAction+KService memory leak. Commit.
KTextEditor
  • Search: add a way to clear the history. Commit. Fixes bug #503327
  • Enable Werror on CI. Commit.
  • Reduce QLatin1Char noise. Commit.
  • Fix clipboard warning, check if QClipboard::Selection is supported. Commit.
  • Ensure we write a BOM if wanted for empty files, too. Commit.
  • Avoid temporary allocations when saving the file. Commit.
  • Properly pass parent pointer for document. Commit.
KTextTemplate
  • With get_filename_component use DIRECTORY instead of legacy alias PATH. Commit.
KUserFeedback
  • Don't report nonsensical screen information. Commit.
KWallet
  • Fix TRANSLATION_DOMAIN. Commit.
  • Fix Messages.sh to cover all of src/runtime. Commit.
  • Added translation_domain. Commit.
KWidgetsAddons
  • Kacceleratormanager: Avoid unnecessary allocations when searching for used shortcuts. Commit.
  • Kactionmenu: Be more forgiving about menu ownership. Commit.
  • Kactionmenu: Fix ownership of default menu. Commit.
  • Enable LSAN in CI. Commit.
  • Avoid mem-leak in KDateTimeEditTest::testDateMenu. Commit.
  • KAcceleratorManager: Avoid unnecessary allocation. Commit.
  • Kmimetypechooser.h: Remove default arguments from an overlapping constructor and mark it as deprecated for 6.24. Commit.
KWindowSystem
  • Remove unused include. Commit.
  • Port createRegion to QNativeInterface. Commit.
  • Port surfaceForWindow to QNativeInterface. Commit.
  • Wayland: Don't try to export window that isn't xdg_toplevel. Commit. Fixes bug #516994
  • Port xdgToplevelForWindow to QNativeInterface. Commit.
  • Wayland: Fix importing window that's not exposed but already has surface role. Commit.
  • Remove unneeded Qt version check. Commit.
  • Platforms/wayland: Manage blur, contrast, and slide globals with std::unique_ptr. Commit.
  • Platforms/wayland: Add missing initialize(). Commit.
  • Platforms/wayland: add missing blur capability with ext-background-effect. Commit.
  • Wayland: implement background effect protocol. Commit.
  • Platforms/wayland: ensure we always react to surface destruction. Commit.
  • Run clang-format on all files. Commit.
Modem Manager Qt
  • Add new cell broadcast interfaces from MM API. Commit.
  • Update modem firmware interface to latest MM API. Commit.
  • Update modem voice interface to latest MM API. Commit.
  • Update call interface to latest MM API. Commit.
  • Update modem interface to latest MM API. Commit.
  • Update bearer interface to latest MM API. Commit.
  • Update modem messaging interface to latest MM API. Commit.
  • Update modem signal interface to latest MM API. Commit.
  • Update modem location interface to latest MM API. Commit.
Prison
  • Bump minimum ZXing version from 1.2.0 to 1.4.0. Commit.
  • Make zxing and libdmtx required dependencies by default. Commit.
Purpose
  • Add missing CI dependencies. Commit.
  • Fix QML module dependencies. Commit.
QQC2 Desktop Style
  • Use Kirigami.StyleHints for tick marks in Slider. Commit.
  • Use Kirigami.StyleHints for useAlternateBackgroundColor in list item background. Commit.
  • Use Kirigami.StyleHints for icons in ComboBox. Commit.
  • Use Kirigami.StyleHints to determine ScrollView background visibility. Commit.
  • Menu: make sure implicitWidth/height is never 0. Commit. Fixes bug #516151
  • Make sure that the default behaviours of onPressed and onLongPressed are not trigger if the even is accepted. Commit.
Solid
  • Devicemanager.cpp replace "Ok" with "OK". Commit.
  • Mark network mounts as ignored if user is missing rights for it. Commit.
  • Fstabhandling: add static wrapper method for '_k_isFstabNetworkFileSystem'. Commit.
  • Use directory name as displayName for fstabdevices. Commit. Fixes bug #501658
Syntax Highlighting
  • Move comment after white space for some shells and Perl. Commit. Fixes bug #510666

I’m happy to announce the new release of KPhotoAlbum, the photo management software for KDE/Linux – version 6.2.0!

Also, I’d like to introduce our new contributor Randall Rude (a.k.a. rsquared), who already worked quite hard on improving our beloved project – welcome to the team :-)

The following changes have been documented in the ChangeLog:

Added
  • Display number of images on collapsed stacks (#223213)
  • Add commandline option --find-new-files as a synonym for --search. In the future, --search may become deprecated at some point.
  • Add support for QtMultimedia video backend
  • Make default annotation mode in viewer configurable (#474317)
  • Improved diagnostic messages for JPEG decoding errors
  • Improved diagnostic messages for invalid file names in database
Changed
  • Thumbnail cache and video thumbnail cache directories are now always ignored while searching for new images.
  • Do not automatically select an image cluster on the map when moving the map if the mouse action started on an image cluster.
Fixed
  • Allow large images up to an in-memory size of 2GB (#500200)
  • Make "Clear form" button in search dialog actually clear all form fields.
  • Allow setting keyboard shortcuts for "Clear Form" and "Options..." items in Annotation/Search dialog (#306044)
  • Fix detection of KDcraw during build time
  • Fix appearance of mouse cursor in the map view (i.e. indicate clickable items on the map)
  • Fix display of EXIF date/time data (#511546)
  • Fix several warnings in the console output (#505015)
  • Use embedded 'creation_time' data in video files instead of file creation time (#472520)
  • Allow saving the Annotation Dialog's layout either globally (as a template for all databases) or per-database (#513933)
  • Prevent unnecessary entries in the block list (#512207)
  • Prevent creation of .kim files over 4GB (mitigates bug #512199)
  • Fix compilation without Marble
  • Improved formatting of "time ago" texts

According to git log, the following individuals contributed code (in alphabetical order):

  • Johnny Jazeix
  • Tobias Leupold
  • Randall Rude
  • Andreas Sturmlechner
  • Friedrich W. H. Kossebau
  • Johannes Zarl-Zierl
  • Justin Zobel

Thanks to everybody for putting work in this release!

— Tobias

Plasma Keyboard has interesting news to share!

Plasma Keyboard started out life as KDE's virtual / on-screen keyboard, and now it is evolving to also support tools and features for our physical keyboards.

FLOSS/Fund

Plasma Keyboard was granted funding from the FLOSS/Fund program's second tranche, for which we are very grateful! This funding has ensured we will be able to put some sustained effort towards refining and improving the project — and I have been doing just that for the past couple of months.

I began by getting more familiar with the codebase, lists of open bugs, and feature requests. I also did some refactoring and cleanup, improved the CI and MR review process, etc.

Diacritics

https://invent.kde.org/plasma/plasma-keyboard/-/merge_requests/83

The first feature I tackled is the first one that is for physical keyboards rather than virtual/on-screen keyboards: diacritics — the variants of a character that indicate a difference in pronunciation, such as ç, ñ, or ü. Though it is more than just diacritics, because it also supports common/popular symbols, such as ™, — (em-dash), →, ¡, ‽, ¼, ≥, ≠, etc.

Diacritics light theme screenshot

Diacritics dark theme screenshot

If you'd like an idea of which diacritics and symbols are currently included, you can check out the base mapping json. Further mappings are included depending on which language(s) you have enabled for Plasma Keyboard in your system settings.

This feature allows users to long-press a key on their physical keyboard to access a popup menu of diacritics and symbols related to that key, and select one to input it. This is a common feature on mobile keyboards, and I personally think this is a great improvement over using something like a compose key for the same purpose.

Selecting an option from the popup menu can be done multiple ways:

  • Pressing the associated keyboard number key shown below the option
  • Clicking on the option with the mouse
  • Using the arrow keys to navigate to the option and pressing Enter

This was pretty challenging to implement; I previously had no experience with Wayland protocols or input methods, so it required a lot of research, reading, learning, and experimentation to figure it out. Difficult, but rewarding!

One of the really cool things about Plasma Keyboard is that it is available as a Flatpak — so if you are adventurous and want to try out the diacritics feature before it is released to the stable version, you can do so with the nightly Flatpak builds!

flatpak install --user --or-update https://cdn.kde.org/flatpak/plasma-keyboard-nightly/org.kde.plasma.keyboard.flatpakref

Then simply enable Plasma Keyboard in System SettingsKeyboardVirtual Keyboard! 🤯 If you already have a version of Plasma Keyboard installed, a quick restart or log out/in might be needed for the new version to take effect.

Future Plans

In addition to the diacritics feature itself, I also laid the groundwork with it for future features that will make use of the same overlay/popup system and physical keyboard integration — stay tuned for more news on that! 😉

There are a bunch of other plans for features and improvements that we'd like to work on, for example: swipe typing, voice typing, making the on-screen keyboard movable and resizable, adding tests and improving performance and reliability, etc.

There is a lot of work to be done, and we are excited to keep improving Plasma Keyboard and making it even more powerful and user-friendly — just like the rest of Plasma! 🚀

If you are interested in contributing, please check out the project on KDE's GitLab: https://invent.kde.org/plasma/plasma-keyboard

Thursday, 12 March 2026

The latest Qt release, Qt 6.11, is just around the corner. This short blog post series presents the new features that QML tooling brings in Qt 6.11. You can find part 1 on new qmlls features here, and part 3 on the context property support here.

We are happy to announce the release of Qt Creator 19!

Release 19 for the Qt Creator IDE adds a minimap for text editors, easier configuration of remote devices, a basic MCP server, lightweight support for various project types for various languages, and many more improvements.

In two sessions, the Krita developers discussed what they want to work on in 2026, after Krita 5.3 and Krita 6.0 are released. That is, actually, one release, but one version is built with Qt5 and one with Qt6. The release is planned for March 24.

Krita Sketch User Interface

Last year, Timotheé created a prototype for a mobile user interface for Krita (there is an APK you can install to play with). At the same time Wolthera finished her work on the new text shape and text tools. Both projects use the QML and QtQuick features of Qt to implement the user interface.

This year, we intend to work on replacing the tool option dockers with QML so we can use those both in the mobile and in the desktop version of Krita.

Alvin Wong experimented in 2025 with embedding an OpenGL based canvas inside a QML application. Dmitry and Carsten will continue that work and see whether we can use Krita's canvas to show an image inside Timotheé's prototype.

Agata has already started work to make the current user interface more suitable for tablet use.

Working with Files

There are a couple of plans we have with regards to file handling. On Android, working with the file sandboxing is seriously complicated, and we're looking into a solution for that.

The Krita .kra file format is pretty old by now (not 25 years, since it came into being a few years after Krita started being developed). It can, obviously, load and save everything Krita can handle, but it is not a particular fast file format. Carsten proposed to look into an SQLlite based file format. This could potentially mean that we could save the image after every change without the user noticing, making saving completely transparent.

Agata is already working on improving the autosave dialog. There is already a mockup for this.

Ivan is looking into sharing settings and resources across a user's devices, ideally in a cross-platform way.

Color Management

While Krita supports HDR displays, there are issues with the user interface. Wolthera wants to start improving there.

Now that Qt 6 includes support for color management, CMYK and higher-bit depth images, it should be possible to add color management to Krita's vector layers, and that's something we are eager to implement.

We also discussed Wayland. We now support color management on Wayland on Linux, but there are plenty of problems there. We decided to only support the KWin Wayland compositor that comes with KDE Plasma for now.

Performance

Dmitry wants to work on "region based updates", and has already started on that: this will make working with large images faster.

Ivan and Wolthera are interested in using vectorization in filters, possibly replacing the use of LittleCMS for color transformations.

Continuous integration

Continuous integration is how we build Krita: after changes, Krita is built automatically for every platform. Now that we've access to Windows ARM hardware, we need to find a way to extend our builds to Windows ARM, but the CI factory doesn't have an ARM builder, so we'd need to cross build.

We also intend to update all Krita's dependencies to the latest version, but only after we release Krita 5.3 and Krita 6.0. And of course, we intend to keep releasing bugfix and feature releases this year! For now, Krita 5.3 is the standard release, and 6.0 is considered experimental, but that should have changed by the end of the year.

Wednesday, 11 March 2026

Qt World Summit 2026 is moving to a virtual format. After careful evaluation with key stakeholders, we've decided to transition the event from an in-person gathering in Germany to an online experience.

Tuesday, 10 March 2026

gcompris 26.1

Today we are releasing GCompris version 26.1.

It contains bug fixes and improvements on many activities.

It is fully translated in the following languages:

  • Arabic
  • Bulgarian
  • Breton
  • Catalan
  • Catalan (Valencian)
  • Greek
  • Spanish
  • Basque
  • French
  • Hebrew
  • Croatian
  • Italian
  • Lithuanian
  • Latvian
  • Malayalam
  • Dutch
  • Polish
  • Brazilian Portuguese
  • Russian
  • Slovenian
  • Albanian
  • Swedish
  • Turkish
  • Ukrainian

It is also partially translated in the following languages:

  • Azerbaijani (87%)
  • Belarusian (83%)
  • Czech (98%)
  • German (93%)
  • UK English (96%)
  • Esperanto (96%)
  • Estonian (86%)
  • Finnish (92%)
  • Galician (97%)
  • Hungarian (97%)
  • Indonesian (98%)
  • Georgian (88%)
  • Kannada (85%)
  • Macedonian (81%)
  • Norwegian Nynorsk (89%)
  • Portuguese (85%)
  • Romanian (97%)
  • Sanskrit (97%)
  • Slovak (78%)
  • Swahili (88%)
  • Tamil (84%)
  • Chinese Traditional (85%)

You can find packages of this new version for GNU/Linux, Windows, Android, and Raspberry Pi on the download page. Also this update will soon be available in the Android Play store, the F-Droid repository and the Windows store.

Thank you all,
Timothée & Johnny

Some of you are following our works to improve connectivity of Qt-based apps. For example, in this blogpost we explained enhacements in the Qt's network stack for more efficient use of RESTful APIs starting with Qt 6.7. So, it might sound we are done with REST. Why bother about OpenAPI then? Well, while around 70% of all web services run on REST, around 20-30% of them use code generated from OpenAPI specification. How could Qt leave that out without helping our users to code less and create more? 

The new Qt 6 OpenAPI module will become available with Qt 6.11 as a Technology Preview. The module introduces the Qt 6 OpenAPI generator, which generates Qt HTTP clients using Qt Network RESTful APIs.

It is important to note here that an OpenAPI generator for Qt 5 has been originally developed by the OpenAPI community. We took it into Qt 6, refactored it, and extended it.

In this blog post, you will learn about the new OpenAPI generator in Qt 6 and see how the new module can be used to implement a simple, Qt-based ChatGPT client application using specification of its API provided in the OpenAPI format.

To make it easier to access the latest AI capabilities, we have updated pre-configured LLMs to newer variants.