Qt 5.14をリリースしました!

本記事は「Qt 5.14 released!」の抄訳です。

2019年12月12日、Qt 5.14をリリースしました。このリリースと、来年のQt 5.15 LTSはQt 6への下準備となります。非推奨の機能にフラグを立てることにより、Qt 6への移植を可能な限りスムーズにすることに取り組むと同時に、新しい機能の一部も導入しており、すでにお使いいただけるようになっています。ハイライトをご覧になり、ぜひウェビナーにご登録ください。変更点の詳細をご説明する予定です。

Qt Quick

生産性、グラフィックスAPIサポート、パフォーマンスの点で今後の課題に備えるために、グラフィックススタックにいくつかの大きな変更を加えています。

Qt 5.14では、オペレーティングシステムが提供する3DグラフィックスAPIからQtを独立させるための第一歩を踏み出しました。これまでベースライングラフィックスAPIとしてOpenGLに依存してきましたが、現在では、より多様なグラフィックスAPIのサポートを開始しています。 Qt 5.14には、Vulkan、Metal、Direct3D11上でQt Quickアプリケーションを実行できるオプトイン機能として、グラフィックスAPIに依存しないシーングラフレンダラーの最初のプレビューが含まれています(Qt Rendering Hardware Interfaceと呼ばれる抽象化レイヤーを使用)。これにより、必要に応じて、オペレーティングシステムが提供するネイティブグラフィックスAPIの上でQtアプリケーションを直接実行できます。 Rendering Hardware InterfaceはQt 6でグラフィックスをレンダリングする標準的な方法であるため、これによりQt 6へのアップグレードも容易になります。

ご想像のとおり、このプロジェクトにはさらに多くのことが盛り込まれており、弊社のLaszlo Agocsが、これらの変更に関する包括的な一連のブログを投稿しています。こちらこちらこちらをご覧ください。LaszloのQt World Summitでのプレゼンテーションもおすすめです。プレゼンテーションは、右側のタイルをクリックすればご覧いただけます。

Qt Quickにはさらに2つの素晴らしい追加機能があります。1つはQt Quick Timelineと呼ばれる新しいモジュールです。このモジュールは、タイムラインとキーフレームを介してプロパティをアニメーション化する簡単な方法を提供し、Design Studioでも使用されます。もう1つの追加機能は、マウスホイール(「WheelHandler」と呼ばれています)およびトラックパッドからのエミュレートされたマウスホイールイベントのイベントハンドラーです。

Qt Quick 3D

Combine 2D and 3D elements in UI design with Qt Quick

Qt Quick 3Dは、Qt Quickからユーザーインターフェイス用の3Dコンテンツを作成するための高レベルAPIを提供する新しいモジュールです。簡単に言うと、 QMLを使用して3Dシーンも定義できるようになり、UIの2Dおよび3Dの両方の部分にQMLベースのアプローチを使用できるようになりました。この新しいアプローチでは、2D/3Dにかかわらず、1つのランタイム(Qt Quick)、1つの共通のシーングラフ、および1つのアニメーションフレームワークでUIを実現できます。そして、これらすべてを1つのデザインツール「Qt Design Studio」でグラフィカルに設計できます。これにより、すべての機能にアクセスしやすくなるだけではありません。目標は、現在の2Dユーザーインターフェイスと同様に、Qtで3DのコンテンツとUI要素を簡単に定義できるようにすることです。 Qt Quick 3Dは5.14でテクノロジープレビューとして利用でき、Qt 5.15リリースで完全にサポートされるQtの一部になると期待しています。

繰り返しになりますが、話すべきことはもっとたくさんあります。 Qt Quick 3Dに関する弊社のAndy Nicholsの最近のブログ投稿と、彼のQt World Summit講演「Combine 2D and 3D elements in UI design with Qt Quick」は、このトピックについてより正確に説明しています。

デスクトップおよびモバイルサポート

High-dpiのサポートには、Windowsで一般的に使用される非整数スケールファクターのサポートなど、改善が加えられています。
画像の色空間のサポートを追加し、キャリブレーションされたモニターでこれらの画像が100%正しく見えるようになりました。小さいものではありますが、もう1つの優れた新機能は、QColorConstants namespaceです。これは、コンパイル時に生成されたQColorインスタンスに多くの定義済みの色を提供します。
Qt WidgetsおよびQt Quickのテキストエディターは、Markdown形式の読み取りと書き込みをサポートするようになりました。多言語化サポートも、Unicode仕様のバージョン12.1への更新と、グレゴリオ暦以外のカレンダーシステムのサポートを追加する新しいQCalendar APIによって改善されました。
Androidでは、マルチABIビルドのサポートが追加され、アプリケーションを複数のターゲットアーキテクチャ向けに一度にコンパイルできるようになりました。また、新しいAABパッケージ形式のサポートを追加しました。これにより、すべてのターゲットアーキテクチャをカバーする単一のパッケージをGoogle Playストアに一度で展開できます。

Qt Creator 4.11

Qt 5.14に加えて、Qt Creator 4.11をリリースしました。 Qt Creatorが、MCU向けのQtおよびWebAssembly向けのQtを試験的にサポートしていることをお知らせしたかったのです。このリリースでは、Qt Creatorにさらに素晴らしい変更が加えられています。バージョン4.11に関するEike Zillerのブログ投稿で詳細を読んで、早速使ってみてください!

Qt Design Studio 1.4

 また、Qt Design Studioが現在の開発に対応できるように尽力しています。具体的には、上記のQt Quick 3Dの試験的なサポートも備えているため、ユーザーはQt Design Studio 1.4で3Dコンテンツをインポートして操作できます。stateやtimelineなどの機能は、3Dシーンでも完全にサポートされています。
動作中のツールの詳細とビデオについては、弊社Thomas Hartmannのブログをご覧ください。また、彼のQt World SummitのVODには、リソースセンターでSketchまたはPhotoshopのUIデザインを実際のプロトタイプに変換する方法が記載されています。右側のタイルよりぜひ御覧ください。

Performance improvements in Qt 3D

KDABは、スレッドの変更、一般的なケースからのフレームバッファーオブジェクトの削除、通知システムの変更など、5.14のQt 3Dで多くの最適化を行いました。これらの改善により、フレームのレンダリングに伴うCPUオーバーヘッドと、一部のシステムで無駄な時間が発生するスレッド同期の量が削減されます。詳細については、KDAB社 Sean Harmerのブログをご参照ください。

その他

Qt Networkについては、HTTP / 2 configuration APIネットワーク接続モニタリングを追加しました。これにより、より安定した接続を実現できます。同時に、Chromium 77をベースにQt WebEngineを更新し、QWebEnginePageのライフサイクルを制御するための新しいAPIを追加しました。
詳細を知りたい場合は、WikiにQt 5.14の変更点リストがありますので、そちらをご確認ください。

最後に…

Qt 5.14の実現に貢献してくれたすべての人に感謝します。
そして、こちらの記事内でご紹介したQt World Summitの講演はお楽しみいただけたでしょうか。残りの講演もこちらからご覧いただけますので、ご興味をお持ちいただけた方はぜひご視聴ください。

それでは早速、QtアカウントからQt 5.14をダウンロード、またはqt.io / downloadをダウンロードしましょう!
今後のライブウェビナー、Tuukka Turunenと私とのライブQ&Aでお会いするのを楽しみにしています。

Meet Qt 5.14, Europe / Asia - Jan 22, 2020       Meet Qt 5.14, Americas - Jan 22, 2020

Blog Topics:

Comments