今日、前回の重要なリリースから7か月後に、Qtクロスプラットフォームフレームワークのバージョン5.8がリリースされました。
Qtを使用すると、C ++および宣言型プログラミング言語QMLを使用してアプリケーションを開発でき、すべての主要なデスクトッププラットフォームとモバイルプラットフォーム、および一部の組み込みのオープンソースコードをサポートします。 追加の独自モジュールを含むQtの商用バージョンがあります。
この問題では、必要な機能(Qt Lite)のみをアセンブリに含めることができる新しい構成システムが登場しました。いくつかの実験モジュールの安定化、新しい実験モジュール、および廃止されたモジュールの削除。
Qt lite
新しいバージョンには、Qtアセンブリを微調整して必要な機能のみを含める機能があります。 このため、構成システムは大幅に再設計されました。 小さなQMLアプリケーションにQt Liteを使用する例:
Qt QMLおよびクイック
重要な変更がQMLエンジンに影響しました。
QMLおよびJavaScriptファイルのバイナリ表現をキャッシュするためのサポートが追加されました。これにより、起動時間とエンジンメモリの消費が削減されます。 市販のQt Quick CompilerモジュールはQt 5.8でも引き続きサポートされており、将来、新しいキャッシュサブシステムと統合される予定です。
Qt Quick Scene Graphサブシステムは、OpenGLの依存関係を減らすために再設計されました。 これにより、Direct3D 12に基づいたバックエンドの実験的なサポートを追加できるようになり、将来Vulkanなどの他のバックエンドのサポートを追加できるようになりました。
以前は個別のモジュールとして提供されていたソフトウェアレンダリング(Qt Quick 2D Renderer)の統合バックエンド。 また、シーンのごく一部のみが変更された場合、部分的な画面更新のサポートも追加されました。
イベント処理コードはマウスとタッチパッドからクリアされ、将来の改善の基礎として、それらを新しいQQuickPointerEvent内部クラスにマージしました。
Qt Quick Controls 2では、ホバー効果と「システム」テーマのマテリアルスタイルとユニバーサルスタイルのサポートが追加され、システム設定に応じて暗いテーマまたは明るいテーマが自動的に選択されます。 マテリアルとユニバーサルのスタイルのホバー効果、およびマテリアルのスタイルの波及効果がサポートされています。 次のコンポーネントが追加されました:Dialog、DialogButtonBox、MenuSeparator、RoundButtonおよびToolSeparator。
- プラットフォームのネイティブQMLコンポーネントを含むQt Labs Platform実験モジュールがQt Quick Controls 2に追加されました。 このプラットフォームにネイティブコンポーネントがない場合、Qt Widgetsの実装がフォールバックとして使用されます。 このモジュールには、ColorDialog、FileDialog、FolderDialog、FontDialog、Menu、MenuBar、MenuItem、MenuItemGroup、MenuSeparator、MessageDialog、StandardPaths、およびSystemTrayIconのコンポーネントが含まれています。
新しいモジュール
- 前のリリースでプレビューとして利用できるQt Wayland Compositorは Qtに含まれています。 このモジュールを使用すると、C ++またはQMLを使用して独自のWaylandコンポーザーを作成できます。 このモデルには、XDGシェル、WLシェル、IVIアプリケーションの拡張機能と、C ++およびQMLでWayland拡張機能を作成するためのAPIが含まれています。
- QtおよびQt SCXMLに含まれており、以前のリリースでプレビューとしても利用できます。 このモジュールでは、SCXMLステートマシンを使用できます。
また、Qt Creator 4.2では、ステータス図を編集する機能が追加されました。
QtはQt Serialbusモジュールを採用しました。これにより、CANおよびModbusバスを操作できます。
Qt Speech音声合成モジュールの予備バージョンが追加されました。 MacOS、Android、およびWindowsはネイティブバックエンドを使用し、LinuxはSpeech Dispatcher(libspeechd)を使用します。
- OAuthプロトコル1および2を使用して認証を実装するQtネットワーク認証モジュールの予備バージョンも追加されました。
既存のモジュールへの変更
Qt NetworkおよびQt WebSocketsは、TLS PSK暗号化のサポートを追加しました。 Qt Networkは、Diffie-HellmanカスタムパラメータのサポートとQNetworkAccessManagerのHTTP / 2サポートも追加しました。
Qt WebEngineのChromiumエンジンはバージョン53に更新され、Webページの印刷のサポートを受けました。 カスタムダイアログ、ツールチップ、およびコンテキストメニューを作成するための新しいQML APIが追加されました。 Hunspellによるスペルチェックのサポートが追加されました。 view-source:およびいくつかのchrome:スキームのサポートも追加されました。 Windowsバージョンには、MSVC 2015 Update 2以降が必要になりました。
Qt Chartsは、ローソク足チャートを作成する機能を追加します。
Qt Bluetoothは、macOSおよびiOSのBLE周辺機器ロールおよびWinRTの中央ロールのテストサポートを追加します。
- Qt Multimediaモジュールには、QAudio :: convertVolume()(および対応するQMLのAPI)を使用して、対数スケールと線形スケールの間でボリュームを変換する機能があります。 QMLのVideoOutputコンポーネントは、YUV 4:2:2形式(YUYV、UYVY)でのフレームのレンダリングをサポートするようになりました。 GStreamer for Linuxバックエンドには、QVideoProbeを使用してQCameraからのビデオを監視する機能があります。
リモートおよび廃止されたモジュール
Qt Quick 2D RendererモジュールはQt Quickに統合されており、個別のモジュールとしては使用できなくなりました。
- Qtスクリプトは長い間廃止されていますが、それでもQtの一部です。
プラットフォームのサポート
Androidプラットフォームの場合、コピー/貼り付けの編集メニューを備えたテキスト選択マーカーが追加されます。
AppleのtvOSおよびwatchOSサポートの予備バージョン。
iOS用のプリコンパイル済みヘッダーのサポートが追加されました。
iOS、tvOS、およびwatchOSの場合、同じライブラリがシミュレータとデバイスに使用されるようになりました。
- eglfsのソフトウェアレンダリングされたコンテンツ(QWidget)の90度および180度の回転のサポート。