C
既知の問題や制限事項
以下は、Qt for MCUs 2.12.2における既知の問題の一覧です。これらの問題の回避策や状況に関する情報については、Qtサポートまでお問い合わせください。
ユーザーから報告されたすべての問題を確認するには、Qt for MCUs の公開バグトラッカーをご覧ください。
Qt Quick Ultralite
- Qt Quick UltraliteはQt Quick のサブセットであるため、非MCUプラットフォームで利用可能なすべての基本およびコントロールQMLタイプを提供しているわけではありません。詳細については、「Qt Quick Ultralite vsQt Quick」および「Qt Quick Ultralite ControlsとQt Quick Controlsの違い」を参照してください。
- Text 型は、Static Font Engine を使用している場合、複雑なテキストレイアウトを必要とする Unicode シーケンスを正しくレンダリングしません。複雑なテキストにはMonotype Spark フォントエンジンを使用してください。
- SequentialAnimation また、ParallelAnimation は、「on」構文を使用してプロパティに割り当てた場合、自動的に開始されません。アニメーションを開始するには、running プロパティを明示的に
trueに設定してください。 - font.pointSize 画面のDPIは考慮されません。代わりにfont.pixelSize を使用してください。
- デフォルトの状態にはいくつかの制限があります。詳細については、「デフォルトの状態の制限」を参照してください。
- Itemのstate プロパティへのバインディングは、ターゲット状態がwhen 条件を使用していない場合にのみ機能します。式を使用して状態を変更するには、次の2つの方法のいずれかを使用してください。
- States 同じアイテムに対して複数のPropertyChanges やAnchorChanges をターゲットアンカープロパティとして指定しても、期待どおりに動作しません。代わりに、単一のPropertyChanges を使用してください。
- StateGroup はトップレベルオブジェクトとして宣言する必要があります。階層内の他の場所に配置するとエラーになります。
- アンカーを `undefined` に設定しても、以前の位置やサイズのバインディングは復元されません。
- 遷移中のRotationAnimation は、回転以外のプロパティには適用されない場合があります。代わりにPropertyAnimation::properties を使用してください。
- ListView 内のすべてのデリゲートは、同じサイズでなければなりません。サイズは明示的に指定する必要があり、動的に変更することはできません。
onPropertyChangedグループ化されたプロパティではサポートされていません。- color value accessors へのバインディングはサポートされていません。
- transformed アイテムでのclip プロパティの使用はサポートされていません。
- Transforms アイテムに対する `transform` は、その子要素には適用されません。代わりに、各子要素に対して個別に `transform` を設定してください。
- AnimatedSprite
finishBehaviorプロパティは提供されておらず、アニメーションが完了しても最終フレームのままになります。 と同様のデフォルトの挙動を実現したい場合は、 シグナルと プロパティを使用してください。Qt Quick finished currentFrame - AnimatedSprite およびAnimatedSpriteDirectory のframeDuration プロパティは、各フレーム間の正確な持続時間を保証するものではありません。これは、指定された時間間隔後に次のフレームがレンダリングされるべきであることを意味するだけです。プラットフォームの負荷によって、この時間間隔が影響を受ける可能性があります。
- 同じ列挙子を持つ列挙型の定義はサポートされていません。詳細については、enumeration を参照してください。
- QML で
import ".."のような相対インポートを使用すると、ビルドが失敗し、次のエラーが発生する可能性があります:「'pragma Singleton' が指定された型が、シングルトンとしてインポートされていません。 QML で定義されたシングルトンは、モジュールの一部でなければなりません」。ビルドの失敗を防ぐには、QML シングルトンが定義済みのモジュールに属していることを確認してください。 - Qul::ListModel<std::string> は空の文字列を返します。この問題を回避するには、次の例に示すように、その型を構造体でラップしてください:
struct ModelData { std::string text; }; class MyModel: public Qul::ListModel<ModelData> { ... }; - C++ で定義され、InterfaceFiles.filesによってエクスポートされた QML オブジェクトは、Loader では使用できません。
Loader { source: "MyCppType.qml" // ^ error: File MyCppType.qml does not exist. }この問題を回避するには、QML ファイルを作成し、そこで MyCppType を使用し、その QML ファイル名をソースとして指定してください。
// MyQmlType.qml Item { // Note: The root item has to be a visual type! MyCppType { // ... } }Loader { source: "MyQmlType.qml" } - コンポーネントの使用方法。
Component のルートアイテムにある「parent」アクセサを、Repeater またはListView と共に使用すると、「サポートされていないコンテキストからコンポーネント 'parent' を参照しています」というエラーが表示されます。
以下は動作しません:
Component { id: myComp Rectangle { width: parent.width height: parent.height / 2 color: "pink" } } Repeater { model: 1 // Referencing Component via id where the root item uses parent.* accessor delegate: myComp }この問題の回避策として、「parent」アクセサの代わりに、参照先のオブジェクトの「id」を使用してください。
また、Component内でアンカーを使用する際には、他にも様々な問題が発生します。生成されたcppコードがコンパイルできない場合は、問題のあるアンカーバインディングを使用せずに、同じロジックを記述してみてください。根本的な問題は既知ですが、このリリースではまだ修正されていません。
- QMLの値型オブジェクトの属性は読み取り可能ですが、書き込みはできません。これは、以下のQML型およびそれらの属性に適用されます:
- point:
xおよびy - rect:
x、y、width、およびheight - color:
r、g、およびb - matrix4x4:
m11からm44 - geoCoordinate:
latitudeおよびlongitude
- point:
- 表示の回転に関する問題:
- Linuxプラットフォームでは、PlatformContext::presentFrame()が誤った矩形を受け取り、予期しない結果につながります。PlatformContext::presentFrame()に渡された矩形を無視するプラットフォームでは、この問題は発生しないはずです。
- ルート QML アイテムが画面解像度よりも小さい場合、テキストのレンダリングが正しく機能しません。
Qt Creator
- QMLのデバッグはサポートされていません
- QMLのプロファイリングはサポートされていません
Qt Design Studio
- デバイス上でのプレビューはサポートされていません。MCU ボード上でデザインをプレビューするには、自動生成された CMake プロジェクトを使用し、Qt Creator でコンパイルしてください。
プラットフォーム
Renesas プラットフォーム
Renesas RH850-D1M1A
以下は、Renesas RH850-D1M1A ハードウェアに関する既知の問題または制限事項の一覧です。
- Qt Quick このプラットフォームでは
enterSleepModeが実装されていないため、Ultralite 2.12.2はCPU低消費電力モードに入りません。フレームのレンダリングが行われておらず、他のタスクも実行されていない場合、Qt Quick Ultraliteは、次のフレームのレンダリングが必要になるか、別のタスクがCPU時間を必要とするまでループを続けます。
NXP プラットフォーム
NXP i.MXRT1170
以下は、NXP i.MXRT1170 ハードウェアに関する既知の問題または制限の一覧です。
- Qt Quick Ultralite 2.12.2 は、低 CPU 電力モードに入らない。通常、Qt Quick Ultralite は、アプリケーションの UI が更新されていない場合や、処理すべき新しいタッチイベントがない場合に、このモードに入る。このプラットフォームでは、デバッグやフラッシュの妨げとなるため、低 CPU 電力モードは無効になっている。
- リファレンスプラットフォームへの移植版には、ハードウェアレイヤーのサポートに制限があります。
- Monotype Spark フォントエンジンを使用したテキストは、グリフアドレスの位置ずれにより、正しくレンダリングされない場合があります。
STM32プラットフォーム
SDRAMの帯域幅が限られているため、ディスプレイコントローラがフレームバッファをスキャンしている最中にCPUからSDRAMにアクセスすると、LTDC FIFOアンダーランにより視覚的なアーティファクトが発生する可能性があります。UI要素が多く、負荷の高いアニメーションを含むアプリケーションでは、LTDC FIFO Underrun エラーが発生し、視覚的な不具合が生じる場合があります。 UIを簡素化するほか、Qt Quick のUltraliteコアライブラリについて、別のビルドタイプを使用することを検討してください。例えば、MinSizeRel の代わりに、Debug やRelease を使用します。
STM32H750B-DISCOVERY
以下は、STM32H750B-DISCOVERY ハードウェアに関する既知の問題や制限事項の一覧です。
- サポートされているのは SDK バージョン 1.12.1 のみです。
Infineon プラットフォーム
Infineon PSOC Edge E84
以下は、Infineon PSOC™ Edge E84 ハードウェアに関する既知の問題または制限の一覧です。
- プラットフォームポートは双線形フィルタリングを使用しており、背景が再描画されない場合、変換された画像にレンダリングアーティファクトが発生する可能性があります。これは、VGLite ドライババージョン 4.0 以降に存在するバグによるものです。この問題を回避するには、プラットフォームポートを修正してポイントフィルタリングを使用するか、変換された画像の背景を再描画してください。
Nuvotonプラットフォーム
Nuvoton Gerda-4L
以下は、Nuvoton Gerda-4L ハードウェアに関する既知の問題または制限事項の一覧です。
- フラッシュ用に IAR I-jet を実行するには、
cspybatツールを使用しますが、フラッシュ完了後は手動でこのツールを終了する必要があります。 - Shapes (vector graphics) はサポートされていません。これは、フォールバック CPU 描画エンジンが、使用されているフレームバッファ形式と互換性がないためです。
- デバッガが接続された状態で電源を入れ直すと、アプリケーションが起動しません。ボードの電源を入れ直す場合は、デバッガを取り外してください。
- 小さい alpha8 画像(16x16 未満)では、画像の周囲にブレンドによるアーティファクトが生じる場合があります。
その他
- GNU Arm Embedded Toolchain のバグ (https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966) を回避するために、すべてのオブジェクトファイルとライブラリは、リンカーグループ(
--start-group/--end-groupを使用)としてldに渡されます。 さらに、ライブラリはアプリケーションのオブジェクトファイルよりも先にリンカーに渡されますが、これはデフォルトの動作とは逆です。 - GNU Arm GDB 10.3-2021.10 を使用してターゲット上でデバッグを行うと、クラッシュが発生する可能性があります (
internal-error: virtual memory exhausted)。このクラッシュを回避するには、GNU Arm GCC 10 を使用する場合、lib/cmake/Qul/toolchain/armgcc.cmake内の-g3オプションを-gに置き換えるか、ツールチェーンとして GNU Arm GCC 9 を使用してください。 - リソースシステム内のUnicodeファイル名が、Windows上でビルドエラーを引き起こす可能性があります。これは、適切なバージョンのNinjaおよびCMakeを使用することで解決できます。同梱のツールについては、Unicodeファイル名をサポートしていることが確認されています。
- Linux において、
g++-12なしでgcc-12をインストールしている場合、qmlinterfacegeneratorを実行すると、インクルードパス内の GCC ヘッダーにより C++ ヘッダーが見つからない('cstdint' file not found)というエラーが発生します。この問題を解決するには、gcc-12を削除するか、g++-12をインストールしてください。
特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。