Qt Group shipped Qt 6.12, its newest long-term support release with five years of maintenance and a first-ever EU Cyber Resilience Act declaration of conformity for Commercial Qt. The LTS makes the framework a safer default for proprietary products heading into the EU's December 2027 CRA deadline, though the signed declaration only covers Qt's portion of compliance. Developers get native QML hot reload that patches changes in place instead of reloading the whole scene, plus a GPU-accelerated Canvas Painter now out of Technology Preview. The release also adds HarmonyOS support and a long tail of improvements across networking, Lottie, and the build system, and is available now through the Qt installer.
Qt 6.12 LTS ships with first CRA compliance and native QML hot reload
The Qt Framework landed its new long-term release on September 30, and this one carries more than the usual pile of bug fixes. Qt 6.12 is Qt Group's newest LTS in the Qt 6 series, its first release to formally declare EU Cyber Resilience Act compliance, and it includes a hot-reload workflow for QML that should make developers feel something for a change.
Qt Group, the Finnish parent behind The Qt Company, describes 6.12 not as a feature bump but as "a culmination of various efforts started years ago." That framing fits. A lot of what's new here has been parked in previews or drafts for a long while. Now it's production-ready, or at least ready enough that the company feels comfortable pointing you straight at it. The framework powers everything from MuseScore and VLC to automotive instrument clusters, so this isn't some niche toolkit.
It's a five-year LTS, meaning standard maintenance runs for at least five years from here. You can push the window further by paying for commercial or professional services. New LTS releases land roughly every two years, so there's no urgency. The previous one, Qt 6.8, came before the 6.9, 6.10, and 6.11 feature releases that fill the gap between LTS versions. Per Qt's cycle docs, every fourth minor release is an LTS.
The compliance angle
Here's the part that's most interesting from a business standpoint. The EU Cyber Resilience Act lands in full force on December 11, 2027, with an earlier deadline having already blown past on September 11. For companies selling proprietary products with software into the EU, that carries real obligations: vulnerability management, security updates, paperwork. A framework sitting under the hood of a lot of those products is squarely in the crosshairs.
Qt 6.12 is the first Qt release for which the company has issued an EU Declaration of Conformity under the CRA, and it covers Commercial Qt licenses only. The commercial LTS ships "without known exploitable vulnerabilities," Qt says, with security on by default, a fresh disclosure process, and guaranteed response times for paying customers.
Keep in mind the fine print, because Qt is unusually candid about it. Using Qt 6.12 doesn't magically make your finished product compliant. You still have to do your own CRA work. But the signed declaration hands you a ready-made evidence binder for Qt's slice of the job, which trims the underlying assessment. The open-source Community Edition gets nothing here. With that build, "the compliance burden rests on you."
Qt Group reached this point partly because it holds CNA status, letting it issue its own CVE numbers and manage disclosures without waiting on anyone. The company ran a five-phase conformity assessment, from classifying Qt's category to maintaining compliance across the product's life. That detail only matters if you're actually going to sign something with a lawyer, but it's worth knowing it exists.
Rendering and the developer tools
On the developer side, the most-discussed feature is native hot reload for QML, which Qt's Ulf Hermann wrote up in detail.
Old QML Preview reloaded the whole scene on every save. It deleted objects, cleared caches, and tossed your navigation state. Go through five screens, change one line, and you're back at screen one. An interim approach since 6.11 replayed input events, which worked until it didn't. Hermann puts it plainly: if you'd been testing a Pong clone, "it will only ever get you to the Game Over screen."
The new version is gentler. Instead of nuking the scene, Qt 6.12 diffs the changes and patches in place, leaving C++ objects alive where it can. Save a trivial change and nothing gets destroyed — you stay on the fifth screen. Hit a structural change and it rebuilds just that component. Hit something it can't patch and it restarts cleanly while replaying your recorded inputs. It's on by default, though you can disable it with QMLPREVIEW_HOTRELOAD=0. Honest caveat: it isn't safe with QML engines on multiple threads, and procedurally created inner objects may vanish on a rebuild. Reasonable limits for a first pass.
Qt Canvas Painter is another maturing capability, this time GPU-accelerated. It moved out of Technology Preview after years of being the imperative painter API Qt never quite had. There's also a new Canvas2D element modeled on the HTML Canvas, though that one still lingers in Technology Preview alongside the QCanvasCustomBrush C++ class. If you're plotting data, Qt Graphs gained a logarithmic axis, built-in zoom and pan, and an opt-in high-performance backend built on CanvasPainter — which Qt says it wants to keep "rock solid" before making it the default.
The long tail
Beyond those headline areas, the release notes cover a sprawling set of changes. Qt Qml Design Support is a brand-new module for future tooling. Qt Network picks up OpenSSL 4 support. Lottie gains text layers and animated shapes. SVG now plays animated files in QMovie and AnimatedImage.
There's enough here that most projects will grab something useful without a second thought. QRangeModel finally gets built-in sorting, so you can stop wiring up a proxy class just to order your data. gRPC clients can now compress requests and cap incoming message size, which matters if you've ever been burned by a server that returns something enormous and malformed.
On platforms, the notable addition is HarmonyOS. Qt now lists Huawei's OS as an LTS-supported platform, though the detailed notes qualify it as Technology Preview targeting OpenHarmony API level 23, with Vulkan working but accessibility support still missing. It's meant to let existing apps extend into China's device ecosystem without a re-architected codebase. Reasonable if you're aiming there, though it's still early days.
Where it fits
Qt 6.12 is arguably less a flood of new capabilities than a consolidation of effort across security, rendering, and tooling. The five-year LTS window, the CRA declaration, and the hot-reload workflow together make it a sensible default for anything with a long production life.
It's a rather pragmatic release rather than a flashy one, though that's arguably the point for an LTS. The GPU canvas and CRA work are genuinely useful, and the hot reload alone is worth the bump for anyone spending their day in QML. The one caveat is the same as always: it's a foundation, not a product. You still do the building.
Head here for Volker Hilsheimer's release announcement..
