2016-11-08 5 views
1

多くのアプリケーション、特にパフォーマンスの低いマシンでは、LoaderおよびImageなどの組み込みコンポーネントを使用して、リソースを非同期にロードするように設定すると便利です。組み込みコンポーネントの必要なプロパティを設定しプロパティのデフォルト値の変更(非同期など)

  1. 、すなわちasynchronous: true
  2. は基本的にこのコンテンツをカスタムコンポーネントAsyncXXXを作成します:

AsyncXXXこれを行うには、2つの明白な選択肢があります。 QML:

XXX { 
    asynchronous: true 
} 

XXXはLoaderImageのいずれかです。

デフォルトで非同期モードに設定されていないのはなぜですか?

最も重要なのは、ビルトインコンポーネントのデフォルトの動作を非同期のものに変更するカスタム変数を避けるための環境変数、グローバル設定ですか?

答えて

3

あなたは簡単にasynchronous: trueとちょうどLoaderImageありASLoaderASImage QMLの種類を作成し、プロジェクト全体でそれらを使用することができます。これにより、どこでも変更する必要がなくなります。また、オーバーライドしたい場合は、プロトタイプで移動して変更するだけです。

デフォルトで非同期モードに設定されていないのはなぜですか?

非同期は常により複雑でオーバーヘッドが増えるため、デフォルトの動作ではない場合は意味があります。私が見たQMLコードから、同期は非同期よりも頻繁に使用されるため、非同期のデフォルトを作るのはほとんど意味がありません。

EDIT:

また、あなたはプロジェクト全体のプロパティに試作品、例えばコンテキストプロパティ、またはmain.qmlでプロパティをバインドする場合は、実行時に同期および非同期動作の切り替えを実現することができます。

関連する問題