素材スタイル

マテリアル・スタイルは、Googleマテリアル・デザイン・ガイドラインに基づいています。詳細...

インポートステートメントインポート QtQuick.Controls.Material 2.12
以降Qt 5.7

付属プロパティ

付属メソッド

  • color(enumeration predefined, enumeration shade)

詳しい説明

マテリアル・スタイルは、Google マテリアル・デザイン・ガイドラインに基づいています。これにより、プラットフォームやデバイスのサイズを問わず、統一されたエクスペリエンスを実現できます。

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

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

Material スタイルを使用してアプリケーションを実行するには、Qt Quick Controls でスタイルを使用するを参照してください。

注: Material スタイルは Android ネイティブのスタイルではありません。Material スタイルは、Google Material デザインガイドラインに従った、100% クロスプラットフォームの Qt Quick Controls スタイルの実装です。このスタイルはどのプラットフォームでも動作し、見た目はほぼ同じです。使用可能なシステム フォントやフォント レンダリング エンジンの違いにより、若干の違いが生じる場合があります。

注意: マテリアル デザイン ガイドラインは時間の経過とともに変更されるため、ガイドラインとの一貫性を維持するために、このスタイルでは特定のパディングやフォントの値などが変更される場合があります。

カスタマイズ

マテリアル・スタイルはカスタマイズ可能な属性をいくつかサポートしています。これらの属性のいくつかは、fonts と同じように子スタイルにpropagate

残りの属性は子に伝搬しない:

次の例では、ウィンドウと3つのラジオボタンは、紫色のアクセントカラーを使用した暗いテーマで表示されます:

import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Material

ApplicationWindow {
    visible: true

    Material.theme: Material.Dark
    Material.accent: Material.Purple

    Column {
        anchors.centerIn: parent

        RadioButton {
            text: qsTr("Small")
        }
        RadioButton {
            text: qsTr("Medium")
            checked: true
        }
        RadioButton {
            text: qsTr("Large")
        }
    }
}

QMLで属性を指定するだけでなく、環境変数や設定ファイルで指定することも可能です。QMLで指定された属性は、他のすべての方法よりも優先されます。

設定ファイル

変数説明
Themeデフォルトのマテリアルテーマを指定します。値は利用可能なテーマの一つで、例えば"Dark"
VariantMaterial バリアントを指定します。Material Design には 2 つのバリアントがあります: タッチデバイス用に設計された通常のバリアントと、デスクトップ用の dense バリアントです。密なバリアントは、コントロールとそのフォントに小さいサイズを使用します。

値は"Normal" または"Dense" です。

Accentデフォルトのマテリアルアクセントカラーを指定します。値にはcolor のいずれかを指定できますが、事前に定義されているマテリアルの色のいずれかを使用することをお勧めします(例:"Teal" )。
Primaryデフォルトの「素材」の原色を指定します。値には任意のcolor を指定できますが、事前に定義された素材」の色の 1 つを使用することをお勧めします(例:"BlueGrey" )。
Foregroundデフォルトのマテリアルの前景色を指定します。値には任意のcolor を指定できますが、事前に定義された「素材」の色の 1 つ(例:"Brown" )を使用することをお勧めします。
Backgroundデフォルトの素材の背景色を指定します。値には任意のcolor 、または事前に定義されたマテリアルの色の1つ(例:"Grey" )を指定できます。

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

環境変数

変数説明
QT_QUICK_CONTROLS_MATERIAL_THEMEデフォルトのマテリアルテーマを指定します。値は利用可能なテーマのうちの一つで、例えば"Dark"
QT_QUICK_CONTROLS_MATERIAL_VARIANTMaterial バリアントを指定します。Material Design には 2 つのバリアントがあります: タッチデバイス用に設計された通常のバリアントと、デスクトップ用の dense バリアントです。密なバリアントは、コントロールとそのフォントに小さいサイズを使用します。

値は"Normal" または"Dense" です。

QT_QUICK_CONTROLS_MATERIAL_ACCENTデフォルトのマテリアルアクセントカラーを指定します。値にはcolor のいずれかを指定できますが、事前に定義されているマテリアルの色のいずれかを使用することをお勧めします(例:"Teal" )。
QT_QUICK_CONTROLS_MATERIAL_PRIMARYデフォルトの「素材」の原色を指定します。値には任意のcolor を指定できますが、事前に定義された素材」の色の 1 つを使用することをお勧めします(例:"BlueGrey" )。
QT_QUICK_CONTROLS_MATERIAL_FOREGROUNDデフォルトのマテリアルの前景色を指定します。値には任意のcolor を指定できますが、事前に定義された「素材」の色の 1 つ(例:"Brown" )を使用することをお勧めします。
QT_QUICK_CONTROLS_MATERIAL_BACKGROUNDデフォルトの素材の背景色を指定します。値には任意のcolor 、または事前に定義されたマテリアルの色の1つ(例:"Grey" )を指定できます。

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

依存関係

Material スタイルに固有の属性にアクセスするには、Material スタイルを別途インポートする必要があります。Material スタイルへの参照に関係なく、他のどのスタイルでも同じアプリケーション コードが実行されることに注意してください。マテリアル固有の属性は、アプリケーションがマテリアルのスタイルで実行される場合にのみ効果を発揮します。

常に読み込まれる QML ファイルにマテリアルのスタイルがインポートされている場合、アプリケーションがどのスタイルで実行されてもアプリケーションを実行できるようにするには、マテリアルのスタイルをアプリケーションと一緒に配置する必要があります。ファイル セレクタを使用することで、スタイルへの依存関係を作成することなく、スタイル固有の微調整を適用できます。

定義済みのマテリアルの色

プライマリ カラーとアクセント カラーにはどのような色も使用できますが(color )、Material スタイル パレットの他の部分と調和するように設計された、事前定義された色のいずれかを使用することをお勧めします:

利用可能な事前定義色

定数説明
Material.Red
#F44336
Material.Pink
#E91E63 (デフォルトアクセント)
Material.Purple
#9C27B0
Material.DeepPurple
#673AB7
Material.Indigo
#3F51B5(デフォルトのプライマリ)
Material.Blue
#2196F3
Material.LightBlue
#03A9F4
Material.Cyan
#00BCD4
Material.Teal
#009688
Material.Green
#4CAF50
Material.LightGreen
#8BC34A
Material.Lime
#CDDC39
Material.Yellow
#FFEB3B
Material.Amber
#FFC107
Material.Orange
#FF9800
Material.DeepOrange
#FF5722
Material.Brown
#795548
Material.Grey
#9E9E9E
Material.BlueGrey
#607D8B

ダークテーマが使用されている場合、デフォルトでは事前に定義された色の異なる色合いが使用されます:

定数説明
Material.Red
#EF9A9A
Material.Pink
#F48FB1 (デフォルトアクセント)
Material.Purple
#CE93D8
Material.DeepPurple
#B39DDB
Material.Indigo
#9FA8DA(デフォルトプライマリ)
Material.Blue
#90CAF9
Material.LightBlue
#81D4FA
Material.Cyan
#80DEEA
Material.Teal
#80CBC4
Material.Green
#A5D6A7
Material.LightGreen
#C5E1A5
Material.Lime
#E6EE9C
Material.Yellow
#FFF59D
Material.Amber
#FFE082
Material.Orange
#FFCC80
Material.DeepOrange
#FFAB91
Material.Brown
#BCAAA4
Material.Grey
#B0BEC5
Material.BlueGrey
#B0BEC5

事前定義シェード

Material.color()関数に渡すことができる定義済みの色には、それぞれいくつかの異なる色合いがあります:

定数
Material.Shade50
Material.Shade100
Material.Shade200
Material.Shade300
Material.Shade400
Material.Shade500
Material.Shade600
Material.Shade700
Material.Shade800
Material.Shade900
Material.ShadeA100
Material.ShadeA200
Material.ShadeA400
Material.ShadeA700

基本スタイル,ユニバーサルスタイルも参照してください。

バリエーション

マテリアル・スタイルは、ボタンやデリゲートなどのコントロールの高さを小さくし、フォント・サイズを小さくした密なバリアントもサポートしています。マウスとキーボードによってより正確で柔軟なユーザー インタラクションが可能になるデスクトップ プラットフォームでは、dense バリアントを使用することをお勧めします。

dense variant を使うには、環境変数QT_QUICK_CONTROLS_MATERIAL_VARIANTDense に設定するか、qtquickcontrols2.confファイルでVariant=Dense を指定します。どちらの場合もデフォルト値はNormal です。

以下の画像は、通常のバリアントと密なバリアントを使用した場合のコントロールの違いを示しています:

上記の高さは、プラットフォーム間のフォントの違いによって異なる場合があることに注意してください。

コントロール固有の注意事項

テキストエリア

TextArea は、 と の 2 つのFilled OutlinedcontainerStyles をサポートしています。アウトライン化された TextArea は、コントロールの上部に位置するフローティング・プレースホルダー・テキストを持ちます。このため、 またはその子である Flickable が を に設定すると、プレースホルダ・テキストがコントロールの境界の外に出てしまい、クリッピングされることがあります。これを避けるために、 は、このような場合に適切な値に設定されます。TextArea clip true topInset

マテリアルガイドラインに従って、プレースホルダーテキストは短くし、複数行を使用しないようにしてください。

テキストフィールド

上記でTextArea について説明したクリッピングの問題はTextField でも発生する可能性があります。これを避けるために、TextFieldtrue にクリップを設定するときに、topInset を適切な値に設定します。

マテリアルガイドラインに従い、プレースホルダテキストは短くし、複数行を使用しないようにしてください。

添付プロパティ ドキュメント

Material.accent:

この付属プロパティは、テーマのアクセントカラーを保持する。このプロパティは、任意のウィンドウまたはアイテムにアタッチすることができます。値は子に伝搬される。

デフォルト値はMaterial.Pink です。

次の例では、ハイライトされたボタンのアクセント・カラーがMaterial.Orange に変更されています:

Button {
    text: qsTr("Button")
    highlighted: true
    Material.accent: Material.Orange
}

注: アクセントはどの色でもかまいません(color )が、マテリアル・スタイル・パレットの他の部分とうまく機能するように設計された、定義済みのマテリアル・カラーのいずれかを使用することをお勧めします。


Material.background:

このプロパティは、テーマの背景色を保持します。このプロパティは、任意のウィンドウまたはアイテムにアタッチできます。値は子に伝搬される。

デフォルト値はテーマ固有(ライトまたはダーク)です。

次の例では、ボタンの背景色をMaterial.Teal に変更しています:

Button {
    text: qsTr("Button")
    highlighted: true
    Material.background: Material.Teal
}


Material.elevation:int

この付属プロパティは、コントロールの高度を保持します。標高が高いほど影が深くなる。このプロパティはどのコントロールにもアタッチできますが、すべてのコントロールが標高を視覚化するわけではありません。値は子コントロールには伝搬されない。

デフォルト値はコントロール固有である。

次の例では、昇降カードの外観を実現するために、ペインの昇降を6 に設定しています:

Pane {
    width: 120
    height: 120

    Material.elevation: 6

    Label {
        text: qsTr("I'm a card!")
        anchors.centerIn: parent
    }
}


Material.foreground:

この添付プロパティは、テーマの前景色を保持します。このプロパティは、任意のウィンドウまたはアイテムにアタッチすることができます。値は子に伝搬される。

デフォルト値は、テーマ固有(ライトまたはダーク)です。

次の例では、ボタンの前景色をMaterial.Pink に設定しています:

Button {
    text: qsTr("Button")
    Material.foreground: Material.Pink
}


Material.primary:

この添付プロパティは、テーマの原色を保持します。このプロパティは、任意のウィンドウまたはアイテムにアタッチすることができます。値は子に伝搬される。

原色はデフォルトでToolBar の背景色として使用されます。

デフォルト値はMaterial.Indigo です。

注: プライマリ・カラーには color のいずれかを指定できますが、マテリアル・スタイル・パレットの他の部分と調和するように設計された、事前に定義されたマテリアル・カラーのいずれかを使用することをお勧めします。


Material.theme:列挙

このプロパティは、テーマが明るいか暗いかを保持します。このプロパティは、任意のウィンドウまたはアイテムにアタッチできます。値は子に伝搬される。

利用可能なテーマ

定数説明
Material.Light明るいテーマ(デフォルト)
Material.Darkダークテーマ
Material.Systemシステムテーマ

themeをSystem に設定すると、システム・テーマの色に基づいてライト・テーマかダーク・テーマのいずれかが選択される。しかし、themeプロパティの値を読み取るとき、その値は決してSystem 、実際のテーマではありません。

次の例では、ペインとボタンの両方のテーマがMaterial.Dark に設定されています:

Pane {
    Material.theme: Material.Dark

    Button {
        text: qsTr("Button")
    }
}


Material.roundedScale:列挙型

この付属プロパティは、ターゲットコントロールで使用される角丸の半径を保持します。このプロパティは、任意のウィンドウまたはアイテムにアタッチすることができますが、一部のコントロールのみがサポートしています。値は子コントロールには伝搬されない。

デフォルト値はコントロール固有である。

利用可能なスケール:

一定説明
Material.NotRounded正方形の角
Material.ExtraSmallScale小さな角丸
Material.SmallScale小さい角丸
Material.MediumScale中丸コーナー
Material.LargeScale大きい角丸
Material.ExtraLargeScale特大角丸
Material.FullScale角丸

このプロパティは Qt 6.5 で追加されました。

こちらも参照してください:マテリアルのスタイル:形状


Material.containerStyle:列挙型。

このアタッチされたプロパティは、ターゲットコントロールが使用するコンテナのスタイルを保持する。このプロパティは任意のウィンドウまたはアイテムにアタッチできますが、デフォルトでサポートしているのはTextFieldTextArea のみです。値は子には伝搬されません。

デフォルト値はコントロール固有です。

利用可能なスタイル:

一定説明
Material.Filled利用可能であれば、filled コンテナバリアントを使う
Material.Outlined利用可能であれば、輪郭のあるコンテナバリアントを使う

このプロパティは Qt 6.5 で追加されました。

こちらも参照してください:マテリアル・スタイル:テキストフィールドコンテナ


添付メソッドのドキュメント

カラー color(enumeration predefined,enumeration shade)

この付属メソッドは、指定された事前定義された Material カラーと指定されたshade を組み合わせた有効なカラー値を返します。省略された場合、shade 引数のデフォルトはMaterial.Shade500 です。

Rectangle {
    color: Material.color(Material.Red)
}

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