C
バージョン2.5の新機能
Qt Quick Ultraliteは、マイナーリリース間のソース互換性を維持しています。ただし、一部の変更により、アプリケーションコードの修正が必要になる場合があります。以下のセクションでは、そのような変更点を紹介します:
重要な変更点
- デバッグビルドでのみ重大なアサートエラーコードを有効にし、
RelおよびMinSizeRelビルドでは無効にしました。 - Cypress Traveo II のプリビルドライブラリは、GHS 2017 コンパイラを使用してビルドされています。これらのライブラリを使用する場合、またはコアライブラリを再コンパイルする場合は、同じバージョンのコンパイラが必要です。
- Renesas RH850プラットフォームのプラットフォームコードをC++03に、Cypress Traveo IIのプラットフォームコードをC++11にダウングレードしました。
- NXP MIMXRT1060-EVKBのサポートを追加し、このボードの旧バージョン(
MIMXRT1060-EVK)のサポートを終了しました。 qmlprojectexporterを使用してプラットフォームのソースをエクスポートできるようになったため、platformexporterツールは非推奨となりました。詳細については、QmlProject マニュアルを参照してください。
新機能
- ソフトウェアベクトルグラフィックスのサポートが追加されました。
- Renesas RH850 において、C++03 対応の GHS 2015.1.7 コンパイラへのサポートが追加されました。
- SDKのアップグレード:
- STM32H750B SDK を v1.11.0 に更新
- STM32F469 SDK を v1.27.1 に更新
- Renesas RH850/D1M1A RGL SDK を v2.1.0a に更新
- NXP RT1050およびRT1064:SDK v2.13.0
- NXP RT1060 および RT1170:SDK v2.13.1
- Cypress Traveo II SDK を 1.2.1 に更新
- AnimatedSprite の一時停止および再開のサポートを追加しました。
- QmlProject の更新:
- UIリソースの設定をQmlProjectへ容易に移行できるよう、ドキュメントを追加しました。
- クイックスタートガイドを、
qmlprojectexporterのワークフローに合わせて更新しました。 - 画像の変更された領域のみをレンダリングできるようにする `resourceAnimatedSpriteOptimizations` QmlProject プロパティを追加しました。
- GHS Multi IDE プロジェクトの生成に対応しました。このオプションの詳細については、QmlProject マニュアルを参照してください。
- Renesas RH850/D1M1A での LVDS ディスプレイのサポートを追加しました。詳細については、「サポートされているディスプレイ」のセクションを参照してください。
修正された問題
Qt for MCUs v2.5.4
- FMC コントローラがブロックされている場合に、LTDC のアンダーランによってSTM32F769I-DISCOVERYおよびSTM32H750B-DISCOVERYボードで発生していた画面のちらつきの不具合を修正しました。
start()の呼び出し時に、実行中のアニメーションが再起動してしまう問題を修正しました。- PaintedItemDelegate をサブクラス化する際に発生する可能性のある、型が不完全であるというコンパイルエラーを修正しました。
qulrccを修正し、スプライトアニメーションのリソースキャッシュサイズを正しく推定するようにしました。- Spark フォントエンジンで特定の TrueType フォントを使用する際のエラーを修正しました。
- Qt License Server (QLS) を 3.2.0 にアップグレードしました。
qmltocpp修正点:- 親モジュール外で型を使用する際、そのモジュール名で型を修飾するようにしました。
- 空の if ブロックに対して正しい C++ コードを生成するようにしました。
- アンカーに対して誤ったコードが生成されるのを回避しました。
- Loader またはlRepeaterのスコープ内にあるScriptAction インスタンスに対して、正しいC++コードを生成するようにしました。
- StaticText インスタンスのコード生成時に、
update()への不要な呼び出しを削除する。
qmlprojectexporter修正点:qmltocppに渡されるインクルードパスの順序を修正しました。- QML ファイルを並列処理するために、
--parallelおよび-jのコマンドラインオプションを追加しました。 - モジュールからフォントファイルを収集しました。
fontcompilerに渡されるフォントファイルの順序を修正しました。- モジュールの
qmlprojectファイルではresourceCompression が有効になっているが、メインのqmlprojectファイルでは有効になっていないために発生していたクラッシュを修正しました。
Qt for MCUs v2.5.3
- サンプルおよびデモの修正:
- Qt Quick Ultralite のtraveo_t2g_effects サンプルにおける、ぼかし効果のちらつきを修正しました。
- qmlprojectexporterの修正:
- qmlprojectexporter が
importPaths内のモジュールを再帰的に検索するように修正しました。URI は、インポートパスのいずれかからモジュールのqmlprojectファイルへの相対パスと一致している必要があります。これは、ModuleFilesノードにモジュールを追加する代わりに利用できます。 - qmlprojectexporter を修正し、
qmldir内のインポートとしてqulModulesを追加するようにしました。これにより、Qt Creator 内のインポートが正しい順序で読み込まれるようになります。 - qmlprojectexporter を修正し、モジュールの qmlprojects からフォントファイルを収集するようにしました。
- qmlprojectexporter が
- qmltocppの修正点:
- 名前が空のユーザー定義状態を正しく処理するようにしました。
- オブジェクトがデリゲートとして使用されない場合、必須プロパティが初期化されることを確認しました。
- オブジェクトがデリゲートとして使用される場合にのみ、必須プロパティにモデルプロパティの
m_cppNamePropertyが指定されるようにしました。 - クラッシュを防ぐため、
Component型のカスタムプロパティがsouceComponentのバインディングとして使用されているかどうかを確認する。 inlineコンポーネント宣言オブジェクトで、親プロパティが利用可能になるようにしてください。inlineコンポーネントが LoadersourceComponentとして使用される場合、その内部のアンカーバインディングを改善します。- QML カスタムコンポーネントまたはその基底クラスがすでにアタッチドプロパティを定義しているかどうかを確認し、別の QML ファイルでコンポーネントが初期化された際に新しいアタッチドタイプノードが生成されないようにします。
- 変換されたテキストの位置が不正確になったり、レンダリングに不具合が生じたりするエラーを修正しました。
- STM32H750B-discovery ボード上で ARM GCC 12.x ツールチェーンを使用してビルドする際に発生していた、コンパイラおよびリンカーの警告を修正しました。
- Renesas RH850(他のプラットフォームにも影響する可能性がある)で、
PlatformContext::endFrame()がPlatformContext::presentFrame()の呼び出しを伴わずに呼び出されたために発生していたハングの可能性を修正しました。 - Windows上のIARで「
FREERTOS_PROVIDE_MEMORY_ALLOCATOR_OVERLOADS」オプションを使用する際、FreeRTOS のメモリアロケータのビルドに関する問題を修正しました。 - Qt for MCUs が Qt License Server からライセンスを取得できるよう、サポートを追加しました。
- 未知の型で必須プロパティを宣言するとクラッシュする問題を修正しました。
- サポートされる MSVC バージョンの曖昧さを修正しました。
- 形状および部分バッファリング機能に関する機能マトリックスを修正しました。
- ソフトウェアラスタライゼーション下でのアプリケーションに対する CMake 設定のサポートを修正しました。
- 親のプロパティの可視性が true に変更され、かつその項目が Loader によって作成された場合、ネストされたプロパティの可視性がバインディングから外れてしまう問題を修正しました。
- STMF769プラットフォーム向けのウェアラブルアプリケーションにおけるUIの不具合を修正しました。
- Clang 17 でのビルド失敗を修正しました。
importPathsにおいて、モジュールが自分自身に依存するのを防ぐよう、qmlprojectを修正しました。- RGB888 アルファブレンディングを修正し、補間関数に最初のバイトだけでなく、色全体が渡されるようにしました。
Qt for MCUs v2.5.2
- IAR でビルドした際に STM32H750B-discovery ボード上で UI のちらつきやアーティファクトが発生するのを防ぐため、時計デモの色深度を低減しました。
- 省略され、左揃えされていない RTL テキストをレンダリングする際のアサートおよび UI のアーティファクトを修正しました。
- SwipeView の動作を修正し、ビューの有効化および無効化がその子要素にも確実に反映されるようにしました。
qmltocpp修正点:- 引用符で囲まれた文字列リテラルに対して、有効な C++ コードを生成するようにしました。
- JavaScript 関数内のオブジェクトをポインタとして扱うようにしました。
- RotationAnimation の
fromおよびtoプロパティに対して、正しい型を使用するようにしました。 - Qtとの互換性を向上させるため、ドットの代わりにアンダースコアを含む翻訳ファイル名をサポートしました。
- MCU.Config.fontVectorOutlinesDrawing が有効になっている場合、Spark フォントエンジンでの状態更新に関する問題を修正しました。
- Spark フォントエンジンを使用する場合、
fontcompilerがヒープおよびグリフキャッシュに十分なメモリを使用するように修正しました。 - デスクトッププラットフォームでウィンドウのサイズを変更した際に発生していた原因不明のアーティファクトを修正しました。ウィンドウのサイズは固定されました。
- 不明な画像形式を使用した場合にエラーを報告するよう、ソフトウェアレンダラーを修正しました。
- ImageLayer の実装を修正し、アプリケーションのクラッシュを引き起こす可能性のある不正なメモリアクセスを回避しました。
- ShapePath 修正点:
- strokeWidth が
0の場合、デフォルト値(1)を使用するようにしました。これにより、Qt XMLとのコード互換性が向上します。 QUL_COLOR_DEPTHが8の場合、Qt Quick Ultraliteグラフィックスエンジンにおけるパスのブレンド処理を修正しました。
- strokeWidth が
qmlprojectexporter修正点:qmlprojectexporterが依存関係の欠如により失敗した場合に、有用なエラーメッセージを報告するよう、CMakeのロジックを修正しました。qmlprojectファイル内の異なるファイルノードに対するfilterプロパティを無視するようにしました。- インポートされたモジュールの依存関係をモジュールに含めることで、リンカーエラーを回避するようにしました。
- レンダリングツリー内の不適切な不透明領域に起因する UI の不具合を修正しました。レンダラーは、子要素が境界内にある場合にのみ、その不透明領域を計算するようになりました。
- キャッシュされた複雑なテキストのアウトライン生成を最適化し、アウトラインの数が多すぎることに起因する UI の不具合を回避しました。
- AnimatedSpriteDirectory のローカル境界を修正し、アニメーションで使用される画像がクリップされないようにしました。
- FreeTypeのレンダリングプールサイズを修正し、シェイプのレンダリング中のちらつきを回避しました。
Qt for MCUs v2.5.1
- Qt for MCUs アプリケーションがデスクトップ上でビジーループに陥らないよう、Qt デスクトッププラットフォームライブラリを修正しました。
qmltocppを修正し、StaticText 、Rotation 、およびScale QML タイプに対して、Qt Creator による未知のプロパティに関する警告が表示されないようにしました。- サンプルおよびデモの修正:
- デスクトップ環境でエッジが切り取られるのを防ぐため、watchデモのメインウィンドウに明示的なサイズを追加しました。
- swipe_game デモで予期しないアーティファクトが発生する問題を修正しました。重なり合うMouseArea オブジェクトを削除し、スクロールを垂直方向のみに制限しました。
- sprite_animationsを修正し、レンダリング上のアーティファクトが発生しないようにしました。
- SwipeView を修正し、無効化されたアイテムのタッチイベントが捕捉されるのを防ぎました。
zの値を持つ子要素のスタック順が間違っていた問題を修正しました。- AnchorChanges のドキュメントにあるコードスニペットを更新しました。
- プロパティバインディングに基づいてアイテムをアニメーション化する際のクラッシュを修正しました。
- SwipeView のリグレッションを修正し、最小または最大インデックスを超えてスワイプした場合でも、
setCurrentIndex()が期待通りに動作するようにしました。 - STM 搭載デバイスで、
EventQueue::isEmpty() メソッドを使用した場合に発生していたイベントキューのオーバーランを修正しました。 qmlprojectexporterにおいて、QMLファイルを持たないモジュールに対してqmltocppが呼び出されないよう修正しました。- AnimatedSprite における以下の問題を修正しました:
- トリミング時に同一フレームの最適化が適用されないようにしました。
- トリミングの最適化において、RLE圧縮を有効にしました。
- storage セクションの QmlProject 設定を修正し、ドットで始まる名前をサポートするようにしました。
qmlprojectexporterにライセンスチェックを追加しました。- PropertyChanges のトランジションアニメーションを修正し、誤った状態からのプロパティバインディングが使用されないようにしました。
setValue()メソッドが呼び出されるたびに、古いバインディングがクリアされるようになりました。 - C++ からトリガーされるアニメーションが早期に終了しないよう修正しました。
qmlprojectexporterを修正し、GHS プロジェクト向けに欠落していた最適化を追加しました。
Qt for MCUs v2.5.0
- 水平方向の配置が `
Text.AlignRight` または `Text.AlignHCenter` の場合、自動折り返しされる Text アイテムに関するアサーションを修正しました。 - テキストキャッシュのパフォーマンスを改善しました。
- テクスチャキャッシュを内部 RAM に移動しました。
- Qt Creator におけるキット構成のサポートを改善しました。
- SwipeView がドラッグ中にcurrentIndex を更新しない問題を修正しました。
- ProgressBar の実装を修正し、
fromおよびtoプロパティをデフォルト値で初期化するようにしました。 ResourceCropImageSequenceの最適化機能を改善し、画像シーケンスから透明ピクセルを削除するようにしました。qulrccを修正し、同じフレームについては保存済みのデータを確実に再利用するようにしました。- DrawingEngine によるパスポイントのメモリ割り当てを最適化しました。
- すべてのプラットフォームで動作するように、
example-platformの実装を C++03 にダウングレードしました。 - QmlProject の修正点:
QDSというプレフィックスが付いていない DS プロパティを無視するようにしました。- MinGWツールチェーン使用時のビルド失敗を防ぐため、
libclangへの依存関係を追加しました。 qmlprojectexporterが大規模なプロジェクトを処理するのに十分な時間を確保できるよう、デフォルトのプロセスタイムアウト間隔を延長しました。- リンカーオプションを収集し、1行にまとめるロジックを更新しました。
- QMLモジュールの依存関係を含めるよう、ファイル選択ロジックを修正しました。
- サンプルとデモ:
- STM32F769 でのちらつき現象を回避するため、thermoデモを修正しました。
- NXP のi.MX RT1170プラットフォーム上で要素が小さくなりすぎるのを防ぐため、shapesサンプルの方向を横向きから縦向きに変更しました。
- 翻訳サンプルを更新し、画面の向きに応じて旗の画像サイズを変更するようにしました。
- NXP RT1050でLEDが確実に点滅するように、freertos_multitask例のLEDピン設定を更新しました。
onChangedのC++プロパティ用QMLハンドラを使用する際のメモリ破損を修正しました。- Renesas RH850/D1M1A における外部 Octa フラッシュのフラッシュターゲットを修正しました。
qmltocppにおいて、QMLで使用されるC++機能への相対パスが使用されるように修正しました。MinSizeRel以外のビルドタイプを使用する場合、Renesas RA6M3G における内部フラッシュストレージの容量不足に関する CMake 警告が追加されました。詳細については、Renesas EK-RA6M3G Evaluation Kitを参照してください。
新しい API
アプリケーション開発用 API
新しい QML プロパティ
QML 型AnimatedSprite :
(since Qt Quick Ultralite 2.5) | paused : bool |
新しいQMLメソッド
QML タイプAnimatedSprite :
以前のバージョンでの変更点
v1.1.0での変更点 | |
v1.2.0での変更点 | |
v1.3.0での変更点 | |
v1.4.0での変更点 | |
v1.5.0の変更点 | |
v1.6.0 の変更点 | |
v1.7.0 の変更点 | |
v1.8.0 の変更点 | |
v1.9.0 の変更点 | |
v2.0.0 の変更点 | |
v2.1 の変更点 | |
v2.2 の変更点 | |
v2.3の変更点 | |
v2.4.0 の変更点 | |
v2.5の変更点 | |
v2.6.0の変更点 | |
v2.7.0の変更点 | |
v2.8.0 の変更点 | |
v2.9.0 の変更点 | |
v2.10.1 の変更点 | |
v2.11.0 の変更点 |
特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。