<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga" -->

---
title: Qt for Python Release: 6.12 is here! | daily.dev
description: Qt for Python 6.12 ships alongside Qt 6.12 LTS with three headline features: a new QtQmlFeatures module that adds reactive property decorators...
canonical: https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Qt for Python Release: 6.12 is here! | daily.dev
og:description: Qt for Python 6.12 ships alongside Qt 6.12 LTS with three headline features: a new QtQmlFeatures module that adds reactive property decorators...
og:url: https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga
og:image: https://api.daily.dev/og/posts/B6vjNokGa.png
og:image:alt: Qt for Python Release: 6.12 is here!
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Qt for Python Release: 6.12 is here!

**[Qt](https://daily.dev/sources/qt)** · 9 min read · 2 upvotes · 1 comments

## Summary

Qt for Python 6.12 ships alongside Qt 6.12 LTS with three headline features: a new QtQmlFeatures module that adds reactive property decorators (@auto_properties, @computed, @watch, @effect) to remove boilerplate from QObject classes, long-awaited PySide6 support for iOS via a new pyside6-ios-deploy tool, and a security hardening pass driven by EU Cyber Resilience Act compliance, including fixes for zip slip, shell injection, and unsafe deserialization. The release also adds initial Python 3.15 support, Android deployment improvements (NDK r28c, 16KB memory page compatibility), a new versioning scheme for Qt WebEngine and Qt PDF wheels, several stability fixes, and a behavior change where pyside6-deploy now creates standalone packages by default instead of onefile bundles.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.qt.io/blog/qt-for-python-release-6.12-is-here>

## Questions this post answers

### Does PySide6 support iOS now, and how do I deploy a PySide6 app to iOS?

Yes, PySide6 6.12 adds official iOS support. Download the iOS-specific PySide6 and shiboken6 wheels via qtpip (pip install qtpip; qtpip download PySide6 --ios --arch arm64 --platform device), then run the new pyside6-ios-deploy tool with your main.py and the two wheels to generate an Xcode project, which you build and run from Xcode on a macOS host.

_daily.dev surfaces release notes like this for teams planning a PySide6 mobile rollout._

### What does the new QtQmlFeatures module do in PySide6 6.12?

QtQmlFeatures is a technical preview module that removes signal-and-property boilerplate when exposing Python values to QML. Four decorators handle it: @auto_properties converts plain attribute assignments into notifying Q_PROPERTYs, @computed declares cached derived values, @watch reacts to a property change with old and new values, and @effect runs when any listed property changes.

_developers evaluating QML integration patterns can track changes like this via daily.dev._

### Does pyside6-deploy still produce a single onefile executable by default in PySide6 6.12?

No, pyside6-deploy now creates standalone packages by default instead of a single file, a behavior change from prior releases. Developers who want the previous single-executable output must pass the --onefile flag explicitly when running the tool.

_daily.dev helps developers catch deployment default changes before they break a build pipeline._

## Community discussion

Top comments from developers on daily.dev.

**@ahmetozel** · 0 upvotes

> How do the reactive decorators handle a coordinated update of price and quantity in the cart example? Removing signal wiring is valuable, but a watcher or effect may need to distinguish an intermediate state from the final state of a multi-property update.
>
>
> An example that changes both values could show when total is recomputed, what log_state observes, and whether there is a supported batching mechanism. That scheduling contract matters when effects do more than print, such as triggering a refresh or validation. It would also make migration from manually controlled notify signals easier to...

## Similar posts on daily.dev

- [Qt for Python release: 6.11 is out\!](https://daily.dev/posts/qt-for-python-release-6-11-is-out--1m7bri1ie) · Qt · 0 upvotes · 0 comments
- [Qt 6.12 LTS Released\!](https://daily.dev/posts/qt-6-12-lts-released--bjujjb512) · Qt · 0 upvotes · 0 comments
- [Commercial LTS Qt 6.5.12 Released](https://daily.dev/posts/commercial-lts-qt-6-5-12-released-9mznnxgcx) · Qt · 0 upvotes · 0 comments
- [Qt 6.12 Beta Released With Qt Quick 3D XR Apps Now Able To Run On 2D AR Glasses](https://daily.dev/posts/qt-6-12-beta-released-with-qt-quick-3d-xr-apps-now-able-to-run-on-2d-ar-glasses-c5p2nnkaj) · Phoronix · 0 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#ios](https://daily.dev/tags/ios), [#appsec](https://daily.dev/tags/appsec), [#qml](https://daily.dev/tags/qml)

[View this post on daily.dev](https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Qt for Python Release: 6.12 is here!","url":"https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga"},"datePublished":"2026-10-09T04:02:00.384Z","dateModified":"2026-10-09T05:59:45.739Z","description":"Qt for Python 6.12 ships alongside Qt 6.12 LTS with three headline features: a new QtQmlFeatures module that adds reactive property decorators...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5a41c8a93fe5424441c97159ad348e39?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5a41c8a93fe5424441c97159ad348e39?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Qt","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Qt","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/fe6d7c1f4f824966befd58ee13f9de40","url":"https://daily.dev/sources/qt"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"python,ios,appsec,qml","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Qt","item":"https://daily.dev/sources/qt"},{"@type":"ListItem","position":3,"name":"Qt for Python Release: 6.12 is here!"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga","comment":[{"@type":"Comment","text":"How do the reactive decorators handle a coordinated update of price and quantity in the cart example? Removing signal wiring is valuable, but a watcher or effect may need to distinguish an intermediate state from the final state of a multi-property update.\nAn example that changes both values could show when total is recomputed, what log_state observes, and whether there is a supported batching mechanism. That scheduling contract matters when effects do more than print, such as triggering a refresh or validation. It would also make migration from manually controlled notify signals easier to reason about without assuming fewer lines means identical notification behavior.","datePublished":"2026-10-09T06:48:41.445Z","url":"https://daily.dev/posts/B6vjNokGa#c-UNcTw6pDA","author":{"@type":"Person","name":"Ahmet Özel","url":"https://daily.dev/ahmetozel","image":"https://avatars.githubusercontent.com/u/70992231?v=4"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/qt-for-python-release-6-12-is-here--b6vjnokga#faq","mainEntity":[{"@type":"Question","name":"Does PySide6 support iOS now, and how do I deploy a PySide6 app to iOS?","acceptedAnswer":{"@type":"Answer","text":"Yes, PySide6 6.12 adds official iOS support. Download the iOS-specific PySide6 and shiboken6 wheels via qtpip (pip install qtpip; qtpip download PySide6 --ios --arch arm64 --platform device), then run the new pyside6-ios-deploy tool with your main.py and the two wheels to generate an Xcode project, which you build and run from Xcode on a macOS host. daily.dev surfaces release notes like this for teams planning a PySide6 mobile rollout."}},{"@type":"Question","name":"What does the new QtQmlFeatures module do in PySide6 6.12?","acceptedAnswer":{"@type":"Answer","text":"QtQmlFeatures is a technical preview module that removes signal-and-property boilerplate when exposing Python values to QML. Four decorators handle it: @auto_properties converts plain attribute assignments into notifying Q_PROPERTYs, @computed declares cached derived values, @watch reacts to a property change with old and new values, and @effect runs when any listed property changes. developers evaluating QML integration patterns can track changes like this via daily.dev."}},{"@type":"Question","name":"Does pyside6-deploy still produce a single onefile executable by default in PySide6 6.12?","acceptedAnswer":{"@type":"Answer","text":"No, pyside6-deploy now creates standalone packages by default instead of a single file, a behavior change from prior releases. Developers who want the previous single-executable output must pass the --onefile flag explicitly when running the tool. daily.dev helps developers catch deployment default changes before they break a build pipeline."}}]}
```

