スタイリングQt Quick Controls

利用可能なスタイル

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

ベーシック・スタイル

ベーシック・スタイルは、シンプルで軽量なオールラウンド・スタイルで、Qt Quick Controls

フュージョン・スタイル

フュージョン・スタイルのライト・テーマ。

フュージョン・スタイルのダーク・テーマ。

フュージョン・スタイルはプラットフォームにとらわれないスタイルで、デスクトップ向けのルック&フィールをQt Quick Controls に提供します。

イマジン・スタイル

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

macOSスタイル

macOSスタイルの明るいテーマ。

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

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

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

iOSスタイル

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

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

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

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

マテリアル・スタイル

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

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

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

ユニバーサルスタイル

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

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

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

Windowsスタイル

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

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

FluentWinUI3 スタイル

FluentWinUI3 スタイルの明るいテーマです。

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

FluentWinUI3スタイルは、Fluent UIとWinUI 3デザインガイドラインに従った、Windows 11以上のプラットフォーム用にデザインされた、モダンでネイティブなスタイルです。FluentWinUI3は、サポートされているすべてのプラットフォームで実行できます。

でスタイルを使うQt Quick Controls

デフォルトのスタイル

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

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

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

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

// The style must be imported before any other QtQuick.Controls imports.

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 を提供します。以下の例では、 アプリケーションを Material スタイルで実行しています:Qt Quick Controls

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 設定ファイル」を参照してください。

© 2025 The Qt Company Ltd. 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.