このページでは

C

画面の回転設定

説明

一部のハードウェアでは、デバイスのディスプレイの向きが UI の向きと異なる場合があります。たとえば、縦向きのディスプレイパネルで横向きの UI を使用する場合などです。Qt Quick Ultralite では、このようなシナリオに対応するために、アプリケーションのコンテンツ全体を、指定した 90 度の倍数だけ回転させることができます。 アプリケーションプロジェクトのMCU.Config.displayRotationAngleプロパティを、例えば `90 ` に設定することで、UI を横向きで設計・実装しつつ、縦向きのディスプレイ上であたかも実際に横向きであるかのようにレンダリングすることが可能になります。最終的な効果は以下の通りです:

90度の固定画面回転による、ポートレート表示でのランドスケープUI

使用方法

ディスプレイの回転は、QmlProjectのプロパティであるMCU.Config.displayRotationAngle およびMCU.Config.showDesktopPreviewInNaturalDisplayOrientationを使用して設定できます。以下の設定例は、それらの使用方法を示しています:

MCU.Config {
    displayRotationAngle: 90
    showDesktopPreviewInNaturalDisplayOrientation: false
}

回転の挙動は、アプリケーションがターゲットハードウェア上で実行されるか、デスクトップ上で実行されるかによって異なります。デフォルトでは、デスクトッププラットフォーム上でアプリケーションのUIは回転せずに読み込まれますが、MCU.Config.showDesktopPreviewInNaturalDisplayOrientationを false に設定することで、この挙動を上書きすることができます。

PaintedItem でのカスタム描画の処理

回転が有効になっている場合、アプリケーションは、デバイスの物理画面(物理座標系)と比較して、変換された座標系(仮想座標系)上で動作します。PaintedItem のカスタム実装では、この違いを考慮する必要があります。

PaintedItemDelegate::paint() メソッドのカスタム実装では、transform 引数を処理して、必要な変換を適用する必要があります。

Qt Quick Ultralite painteditem の例では、カスタムペイントアイテムから画面の回転を処理する方法を示しています。

パフォーマンスへの影響

ディスプレイの回転角度が 90、180、または 270 の場合、Resource Compilerは、アプリケーションのqmlprojectファイルで指定された画像リソースを事前に回転させます。これにより、実行時に回転させることなくブレンドすることができ、パフォーマンス上のオーバーヘッドを回避できます。

同様に、フォントコンパイラも、静的フォントエンジンのグリフのアルファマップ、およびどちらのフォントエンジンでもStaticText アイテムに使用されるアルファマップを事前に回転させます。

Monotype Sparkフォントエンジンを使用する場合、グリフのアウトラインはグリフがラスタライズされる前に事前に回転されるため、表示の回転が使用されてもパフォーマンス上のオーバーヘッドがほとんど生じないことが保証されます。

MCU.Config.showDesktopPreviewInNaturalDisplayOrientationおよびMCU.Config.displayRotationAngleも参照してください

特定のQtライセンスの下で利用可能です。
詳細はこちら。