Qt 5.12 アルファ版がリリースされました。Qt 5.12 は Qt 5.9 に続く、新たなLTS(Long Term Support)版となります。
オンラインインストーラ使用時には MaintenanceTool を使ってインストールすることも可能です。
Qt Remote Objects モジュールが正式サポートとなりました。
新機能から私が気になったものを以下に挙げます。
- Qt Core
- JSON ベースのバイナリフォーマットである CBOR に対応しました。
- ワイルドカード表現を QRegularExpression へ変換するためのヘルパー関数 wildcardToRegularExpression を追加しました。
- Qt GUI
- マウスやタッチイベントなどの処理が Windows 8 以降で追加された Windows Pointer Input Messages ベースの処理に統合されました。Surface のようなハードウェアへの対応に特別なドライバが不要となりました。
- Qt QML
- JavaScript エンジンが ECMAScript 7 をサポートしました。
- QJSEngine::importModule() を使って ECMAScript モジュールを直接読み込んだり、.qml ファイル内で .mjs ファイルを import できるようになりました。
- Qt Quick
- Qt.labs で開発されていた Pointer Handler に Keys アッタチドプロパティが統合されて Input Handler として QtQuick モジュールに正式に追加されました。今後は MouseArea や MultiPointTouchArea では無く、こちらのクラスの利用が推奨されます。(C++ APIはまだ用意されていません。)
- 事前生成したディスタンスフィールドキャッシュ(フォントデータ)に対応しました。起動時間を高速化できます。
- 新たなビュータイプとして TableView が追加されました。Qt Quick Controls 1 にあったものとは異なり、スタイルには対応していません。これまでに無い最適化手法としてデリゲートの再利用機能が用意されています。
- TableView 等のビュータイプで異なるデリゲートを選択するための DelegateChooser がテクノロジープレビューとして追加されました。モデルのロールやインデックスに基づいてデリゲートを選択することが可能です。
- Qt WebEngine
- Chromium 69 へアップデートしました。
- Qt Virtual Keyboard
- Qt Virtual Keyboard に拡張インターフェースが導入されました。それにともない現在の Input Method 実装やいくつかの特別なキーボードレイアウトが拡張機能へと移動しました。この拡張インターフェースに導入によって新しい Input Method が Qt Virtual Keyboard の変更や再ビルドを使わずに作成できるようになります。また、機能や言語を個別に拡張をコピーすることでシステムに追加することも可能となりました。
- Qt 3D
- CPU 消費量を削減しました。
- EntityLoader がファイルだけではなく、Component からも読み込めるようになりました。
- OpenGL ES 3.1 のサポートを追加しました。
- その他パフォーマンスやバグの修正を行いました。
その他にも様々な変更がありますので、 http://wiki.qt.io/New_Features_in_Qt_5.12 を参照してください。
Qt Quick の Input Handler や TableView などは時間が取れたら別途記事にしたいと思っています。