スタイリング Qt クイックコントロール

利用可能なスタイル

Qt Quick Controls には様々なスタイルが用意されています。

基本スタイル

ベーシックスタイルは、Qt Quick Controls のパフォーマンスを最大限に引き出す、シンプルで軽量なオールラウンドスタイルです。

Fusion スタイル

Fusion スタイルのライトテーマです。

Fusion スタイルのダークテーマです。

Fusionスタイルは、プラットフォームに依存しないスタイルで、Qt Quick Controls にデスクトップ向けのルック&フィールを提供します。

Imagine スタイル

Imagine スタイルは、画像アセットをベースにしています。このスタイルにはデフォルトの画像セットが付属しており、事前に定義された命名規則を使用して画像のあるディレクトリを提供することで、簡単に変更することができます。

macOSスタイル

macOSスタイルのライトテーマ。

macOSスタイルのダークテーマ。

macOSスタイルは、macOS用のネイティブなスタイルです。

注意: このスタイルは、macOS上で動作するアプリケーションでのみ使用できます。

iOSスタイル

iOSスタイルのライト・テーマ。

iOSスタイルのダーク・テーマ。

iOS スタイルは、画像アセットに基づく iOS 用のネイティブ風のスタイルです。

: このスタイルは、iOS で実行されるアプリケーションでのみ使用できます。

マテリアル・スタイル

マテリアル・スタイルのライト・テーマ。

マテリアル・スタイルのダーク・テーマ。

マテリアル・スタイルはGoogle マテリアル・デザイン・ガイドラインに基づいた魅力的なデザインを提供しますが、ベーシック・スタイルよりも多くのシステム・リソースを必要とします。

ユニバーサルスタイル

ユニバーサルスタイルのライトテーマ。

Universalスタイルのダークテーマ。

ユニバーサルスタイルはMicrosoftユニバーサルデザインガイドラインに基づいた魅力的なデザインを提供しますが、ベーシックスタイルよりも多くのシステムリソースを必要とします。

Windowsスタイル

Windowsスタイルは、Windows用のネイティブなスタイルです。

注意: このスタイルは、Windows上で動作するアプリケーションでのみ使用できます。

Qt クイックコントロールでスタイルを使用する

デフォルトのスタイル

スタイルが明示的に設定されていない場合、デフォルトのスタイルが使用されます。使用されるスタイルはオペレーティングシステムによって異なります:

その他のOSでは、Basic Styleが使用されます。

コンパイル時のスタイル選択

コンパイル時のスタイル選択は、QMLでインポートする際に使用するスタイルを指定する方法です。例えば、Materialスタイルをインポートする場合です:

import QtQuick.Controls.Material

ApplicationWindow {
    // ...
}

QtQuick.Controls(実行時のスタイル選択を担当)はインポートされていないことに注意してください。フォールバックスタイルは、スタイルのqmldirによって指定されます:

module QtQuick.Controls.Material
# ...
import QtQuick.Controls.Basic auto

コンパイル時のスタイル選択の利点は、QMLコンパイラがどの特定のスタイルが使用されているかを把握し、バインディング用のC++コードを生成できることです。

もう一つの利点は、QtQuick.Controlsプラグインを使用しないため、アプリケーションと一緒にデプロイする必要がないことです。

アプリケーションを静的にビルドする場合は、明示的なインポートも必要です。

コンパイル時のスタイル選択の欠点は、1つの実行ファイルで複数のスタイルをサポートできないことです。

実行時のスタイル選択

ランタイム・スタイル選択は、QtQuick.Controls をインポートして使用するスタイルを指定する方法です:

import QtQuick.Controls

QtQuick.Controls プラグインは、次のいずれかの方法で実行時に設定されたスタイルをインポートします:

これらのアプローチの優先順位は、リストの順番に従っています。つまり、QQuickStyle を使用してスタイルを設定すると、コマンドライン引数を使用するよりも常に優先されます。

同様に、フォールバックスタイルは以下のいずれかの方法で設定することができます:

注意: フォールバックスタイルを動的に選択できるのは、メインスタイルの qmldir ファイルで静的に選択されていない場合だけです。

ランタイム スタイル選択の利点は、1つのアプリケーション バイナリで複数のスタイルをサポートできることです。つまり、エンド ユーザーはアプリケーションを実行するスタイルを選択できます。

この方法の欠点は、QMLコンパイラがどの特定のスタイルが使用されているかを知ることができないため、Qt Quick Controlsの型のプロパティに対するバインディングのためのC++コードを生成することができないことです。これは、QMLコンパイラが他のモジュールの型のバインディングのC++を生成する機能には影響しません。

C++ での QQuickStyle の使用

QQuickStyle は、特定のスタイルを設定するための C++ API を提供します。以下の例では、Qt Quick Controls アプリケーションを Material スタイルで実行しています:

QQuickStyle::setStyle("Material");

詳細はQQuickStyle の詳細説明を参照してください。

コマンドライン引数

-style コマンドライン引数を渡すと、異なるスタイルをテストするのに便利です。これは、以下に示す他の方法よりも優先されます。以下の例では、Qt Quick Controls アプリケーションを Material スタイルで実行しています:

./app -style material

環境変数

QT_QUICK_CONTROLS_STYLE 環境変数を設定することで、システム全体のスタイル設定を行うことができます。後述の設定ファイルよりも優先されます。次の例では、Qt Quick Controls アプリケーションを Universal スタイルで実行します:

QT_QUICK_CONTROLS_STYLE=universal ./app

サポートされている環境変数の全リストはQt Quick Controls でサポートされている環境変数を参照してください。

設定ファイル

Qt Quick Controls は、アプリケーションのリソースに組み込まれる特別な設定ファイル:/qtquickcontrols2.conf をサポートしています。

この設定ファイルでは、優先スタイル(前述のいずれかの方法で上書きすることができます)と特定のスタイル固有の属性を指定することができます。次の例では、優先スタイルが Material スタイルであることを指定しています。

[Controls]
Style=Material

設定ファイルの詳細については、「Qt Quick Controls 設定ファイル」を参照してください。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。