コンポーネントの詳細プロパティの設定
「Properties 」ビューの「Advanced 」および「Layer 」セクションでは、Item コンポーネントから継承され、主にアプリケーション開発者が使用するコンポーネントの高度なプロパティを管理できます。
![[プロパティ] ウィンドウの [詳細] タブ。 [プロパティ] ウィンドウの [詳細] タブ。](images/qtquick-properties-advanced.png)
「Smooth 」を選択すると、スムースサンプリングが有効になります。スムースサンプリングは線形補間を使用して行われますが、非スムースサンプリングは最近傍法を使用して行われます。スムースサンプリングはパフォーマンスへの影響が最小限であるため、デフォルトで有効になっています。
アンチエイリアシングは、画面上の曲線を滑らかに表示するために使用されます。「Antialising 」を選択して、アンチエイリアシングを有効にします。
「Baseline offset 」の値は、ローカル座標系におけるコンポーネントのベースラインの位置を指定します。Text コンポーネントのベースラインとは、テキストが配置される仮想の線のことです。テキストを含むコントロールでは、通常、そのテキストのベースラインをコンポーネントのベースラインとして設定します。テキスト以外のコンポーネントの場合、デフォルトのベースラインオフセットとして 0 が使用されます。
マウスおよびキーボードイベントの管理
「Enabled 」を選択すると、コンポーネントがマウスおよびキーボードイベントを受信できるようになります。コンポーネントの子要素は、個別にこの値を明示的に設定しない限り、この動作を継承します。
「Focus 」チェックボックスを有効にすると、コンポーネントにアクティブなフォーカスが割り当てられ、「Focus on tab 」チェックボックスを有効にすると、コンポーネントがタブフォーカスチェーンに追加されます。 タブフォーカスチェーンは、まず親コンポーネントを訪問し、次に定義された順序でその子コンポーネントを順に訪問することで、コンポーネントを順にたどります。タブフォーカスチェーン内のコンポーネントでTab キーを押すと、キーボードフォーカスがチェーン内の次のコンポーネントに移動します。Back Tab キー(通常はShift+Tab)を押すと、フォーカスが前のコンポーネントに移動します。
レイヤーの使用
Qt Quick では、専用のシーングラフが使用され、OpenGL ES、OpenGL、Vulkan、Metal、またはDirect 3DなどのグラフィックスAPIを介してシーングラフが走査され、レンダリングされます。 従来の命令型描画システムではなく、グラフィックスにシーングラフを使用することで、レンダリング対象のシーンをフレーム間で保持でき、レンダリング開始前にレンダリング対象となるプリミティブの完全なセットが把握できます。これにより、状態変更を最小限に抑えるバッチレンダリングや、隠れたプリミティブの破棄など、数多くの最適化が可能になります。
例えば、UIに10個の項目からなるリストがあり、各項目に背景色、アイコン、テキストが含まれているとします。従来の描画手法では、これにより30回の描画呼び出しと、それに匹敵する数の状態変更が発生することになります。 一方、シーングラフを使用すれば、レンダリングするプリミティブを再編成し、すべての背景を1回の呼び出しで描画し、次にすべてのアイコン、その後にすべてのテキストを描画するようにすることで、描画呼び出しの総数をわずか3回に削減できます。このようなバッチ処理や状態変更の削減は、一部のハードウェアにおいてパフォーマンスを大幅に向上させることができます。
レイヤーのプロパティを設定するには、コンポーネントのレンダリング方法に関する基本的な理解が必要です。レンダリングについては、Qt Quick Scene Graph Default Renderer で説明されています。

コンポーネントは通常、それらが属するウィンドウに直接レンダリングされます。しかし、「Layer 」セクションで「Enabled 」を選択することで、コンポーネントとそのサブツリー全体をオフスクリーンサーフェスに委譲することができます。そうすることで、オフスクリーンサーフェス(テクスチャ)のみがウィンドウに描画されるようになります。詳細については、Item Layers を参照してください。
レイヤリングが有効になっている場合、このコンポーネントを、「Effect 」フィールドで選択したコンポーネントと組み合わせて、直接テクスチャとして使用できます。通常、このコンポーネントは、ソーステクスチャが指定されたシェーダーエフェクトである必要があります。
コンポーネントがレイヤーのオフスクリーンサーフェスをエフェクトに正しく渡せるようにするには、「Sampler name 」フィールドをテクスチャのソースプロパティに設定します。
コンポーネントのレイヤーが有効になっている場合、シーングラフは GPU 上で幅 × 高さ × 4 に相当するメモリを割り当てることに注意してください。メモリに制約のある構成では、大きなレイヤーの使用には注意が必要です。また、レイヤーを使用するコンポーネントは、レンダリング中にバッチ処理を行うことができません。つまり、レイヤー化されたコンポーネントが多数存在するシーンでは、パフォーマンスの問題が発生する可能性があります。
デフォルトでは、シーングラフレンダラーが使用されており、基盤となるグラフィックスAPIがマルチサンプリングをサポートしている場合、ウィンドウ全体でマルチサンプリングが有効になります。Samples フィールドの値を設定することで、シーンの一部に対してマルチサンプリングを要求できます。これにより、特定のサブツリーにのみマルチサンプリングが適用され、パフォーマンスが大幅に向上する可能性があります。 とはいえ、マルチサンプリングの有効化は、レイヤーのサイズにかかわらず、ハードウェアやドライバに依存するパフォーマンスおよびメモリのオーバーヘッドを伴うため、潜在的に負荷が高くなる可能性があります。マルチサンプル・レンダリングバッファおよびフレームバッファ・ブリットのサポートが利用できない場合、この値は黙って無視されます。
Format フィールドの値は、テクスチャの内部OpenGLフォーマットを指定します。OpenGLの実装によっては、テクスチャメモリを節約できる場合があります。ただし、RGB およびAlpha の値は、基盤となるハードウェアやドライバがこれらをサポートしていない可能性があるため、使用には注意が必要です。
「Texture mirroring 」フィールドでは、生成される OpenGL テクスチャを x 軸または y 軸に沿って反転させるかどうかを指定します。生成されたテクスチャにカスタムシェーダーから直接アクセスする場合、カスタムミラーリングが役立つことがあります。レイヤー化されたコンポーネントに対して効果が指定されていない場合、ミラーリングはコンポーネントの UI 表示には影響しません。
「Smooth 」が選択されている場合、コンポーネントはスケーリングに線形補間を使用します。ダウンサンプリングにミップマップを使用するには、「Mipmap 」を選択してください。ミップマッピングにより、縮小されたコンポーネントの視覚的な品質が向上する場合があります。単一の「Image 」コンポーネントのミップマッピングを行う場合は、代わりに画像プロパティで「Mipmap 」を選択してください。
コンポーネントのサイズとは異なるサイズのテクスチャを使用するには、[Texture size ]フィールドにテクスチャの幅と高さを指定します。
「Wrap mode 」では、テクスチャに関連付けられる OpenGL のラップモードを定義します。テクスチャをエッジで切り詰めるか、水平方向および垂直方向に繰り返し表示することができます。なお、一部の OpenGL ES 2 実装では、2 の冪でないテクスチャに対して「Repeat 」ラップモードをサポートしていない点に注意してください。
「Qt Quick UI の設計方法」、「 Qt Quick UI の設計」、および「 Qt Quick UI の設計」も参照してください 。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.