New Features in Qt 5.12▲
Qt Core Module▲
-
Added the static QCryptographicHash::hashLength method. It returns the length of a hash's output.
-
Added wildcardToRegularExpression helper method to QRegularExpression for easier wildcard implementation in user code.
-
Added anchoredPattern helper method to QRegularExpression for easier exact matching implementation in user code.
-
Added QRegularExpression support to QSortFilterProxyModel.
-
Support for CBOR data similar to existing JSON support.
Qt Network Module▲
-
Added DTLS (Datagram Transport Layer Security) over UDP support.
-
Added renegotiation to Security Transport backend.
-
Added ALPN support and HTTP/2 protocol negotiation to Security Transport backend.
-
Added PKCS#8 support in the generic SSL backend (WinRT and Secure Transport).
-
Added QPasswordDigestor: a new namespace that contains password-based key derivation functions (currently PBKDF1 and PBKDF2).
Qt Widgets Module▲
-
Added QStyle::SH_SpinBox_StepModifier style hint.
-
Added QLineEdit::inputRejected signal.
-
Added Qt::WA_StyleSheetTarget attribute.
-
Added QLayout::indexOf(QLayoutItem *) function.
Qt QML Module▲
-
The JavaScript engine now supports ECMAScript 7. This includes an upgrade to ECMAScript 6, see ECMAScript 6 - New Features: Overview & Comparison.
-
ECMAScript modules can now be loaded directly with QJSEngine::importModule() and imported in .qml files when using the .mjs file extension.
Qt Quick Module▲
-
Pointer Handlers are renamed to Input Handlers (we include the pre-existing Keys attached property in this category) and are now fully supported as a first-class QML feature in Qt Quick. (C++ API for them is still not public yet.)
-
HoverHandler is a new type of handler for detecting mouse hover. It can detect hover even in cases of deep nesting: unlike MouseArea, you can hover multiple nested Items with HoverHandlers in them at the same time. (For example, a sidebar and an individual button on the sidebar).
-
DragHandler is now a multi-point handler: if you set minimumPointCount to 2, it will react only to a 2-finger drag, for example. This can give you another degree of freedom: single-finger drag can perform the typical item movement, and 2-finger drag can do something else (change the tilt angle, for example).
-
Added support for pregenerated distance field caches for faster startup times.
-
Added TableView as another type of Item View: on par with ListView but having multiple columns. Unlike the one in QtQuick Controls 1.x, it does not do any styling; rather it provides the optimal solution for instantiating (and pooling and reusing) delegates on demand as you scroll through the rows and columns.
-
Tech Preview: Added DelegateChooser as a means of choosing different delegates in Item Views (such as TableView) depending on role values from the model, or depending on the index.
Qt Quick Controls 2 Module▲
-
Dial: Added inputMode property, that adds two new ways of interacting with the Dial: horizontally and vertically. These new input modes use a relative input system that adds changes to the dial's position to its value. This results in a dial that is less "jumpy", making it safe for operations that could be harmful if done incorrectly, like adjusting audio levels.
-
Control and Popup: Added topInset, bottomInset, leftInset, an