「Qt 6.0」が登場

 フィンランドThe Qt Companyは12月8日、クロスプラットフォームのアプリケーション/UI開発フレームワークの最新のメジャーリリースとなる「Qt 6.0」を公開した。

 Qt 6.0は2012年に公開されたQt 5系から8年ぶりのメジャーリリースとなる。数年間の構想をかけて、「新しい世代のQtの開発に注力した」と最高技術責任者(CTO)でプロジェクトのチーフメンテナーLars Knoll氏は記している。8年の間の変化として、Qt 5系では組み込み系での利用が急増したこと、C++の進化、新しい3DグラフィックAPIの台頭などを挙げている。

 Qt 6ではC++の要件がC++17となった。コアライブラリQtCoreとAPIでは、QObjectや関連クラスで新しいプロパティシステムを導入し、QMLのバインディングエンジンを統合してC++から利用できるようにした。この他、QListをQVectorと単一のクラスに統合したり、QMetaTypeとQVariantを書き直すなどの変更が加わっている。

 多数の強化が加わったグラフィックでは、OpenGLに依存していた土台の3DグラフィックAPIを大幅に変更し、Qt Quickの3Dグラフィックの土台を3Dグラフィック抽出レイヤーとなるQt RHI(Rendering Hardware Interface)に変更した。これにより、OSやプラットフォームのネイティブな3DグラフィックAPIを使うことができるようになる。デフォルトではWindows/Direct3D、macOS/Metalとなった。

 OpenGL固有のクラスも残しているが、QtOpenGLモジュールのQtGuiに移行した。クロスプラットフォームで異なるシェーディング言語を扱う新しいモジュールQtShaderToolsも加わった。

 5.15で導入したQt Quick 3D、Qt 3Dなども強化した。Qt QuickはmacOSとWindowsでデスクトップでのルック&フィールを改善した。ビルドとディストリビューションでは、ビルド自動化のCMakeを採用した。6系のライフタイムを通じてqmakeのサポートも提供するが、新規プロジェクトにはCMakeの利用を推奨している。

 Qt 5の間に非推奨となったAPIやモジュールが多数あり、コードのクリーンナップも行った。Qt 5でよく利用されていたが削除されたAPIはQt5CoreCompatモジュールに移行した。Qt Multimedia、Qt Bluetoothなど、まだ6系に移植されていないモジュールもあり、今後の6系のポイントリリースで行う。

The Qt Company
https://www.qt.io/