マテリアルスタイル
マテリアルスタイルは、Googleのマテリアルデザインガイドラインに基づいています。詳細...
| インポート文: | import QtQuick.Controls.Material |
| 対応バージョン: | Qt 5.7 |
関連プロパティ
- accent: color
- background: color
- elevation: int
- 前景色: 色背景色 : 色
- 主色: 色
- theme: 列挙型
- roundedScale: 列挙型
- コンテナスタイル: 列挙型
関連メソッド
- colorcolor(列挙型 predefined, 列挙型 shade)
詳細な説明
「Material」スタイルは、GoogleのMaterial Designガイドラインに基づいています。これにより、プラットフォームやデバイスのサイズを問わず、統一されたユーザー体験を実現します。
Material スタイルのライトテーマ。 |
Materialスタイルのダークテーマ。 |
Material スタイルでアプリケーションを実行するには、「 Qt Quick コントロールでのスタイルの使用」を参照してください。
注: Materialスタイルは 、Android ネイティブのスタイルではありません。Material スタイルは、Google の Material Design ガイドラインに準拠した、Qt Quick Controls による 100% クロスプラットフォームなスタイル実装です。このスタイルはどのプラットフォームでも動作し、どこでもほぼ同じ外観になります。利用可能なシステムフォントやフォントレンダリングエンジンの違いにより、若干の差異が生じる場合があります。
注: Material Designガイドラインは随時変更されるため 、ガイドラインとの整合性を保つために、このスタイルではパディングやフォントの値などが変更される場合があります。
カスタマイズ
Material スタイルでは、いくつかのカスタマイズ可能な属性がサポートされています。これらの属性の一部は、fonts と同様に、子要素に対してpropagate されます:

残りの属性は子要素には伝播しません:
次の例では、ウィンドウと3つのラジオボタンすべてが、紫色のアクセントカラーを使用したダークテーマで表示されます:
|
|
QML で属性を指定するほか、環境変数や設定ファイルを介して一部の属性を指定することも可能です。QML で指定された属性は、他のすべての指定方法よりも優先されます。
設定ファイル
| 変数 | 説明 |
|---|---|
Theme | デフォルトのMaterialテーマを指定します。値には、利用可能なテーマのいずれかを指定できます(例:"Dark" )。 |
Variant | Materialのバリアントを指定します。Material Designには、タッチデバイス向けに設計された「normal」バリアントと、デスクトップ向けの「dense」バリアントの2種類があります。「dense」バリアントでは、コントロールやフォントのサイズが小さくなります。 値として、 |
Accent | Materialのデフォルトのアクセント色を指定します。値は任意のcolor を指定できますが、"Teal" などの、あらかじめ定義されたMaterialカラーのいずれかを使用することを推奨します。 |
Primary | Materialのデフォルトのプライマリカラーを指定します。値は任意のcolor を指定できますが、"BlueGrey" などの事前定義されたMaterialカラーのいずれかを使用することを推奨します。 |
Foreground | Materialのデフォルトのフォアグラウンド色を指定します。値は任意のcolor に設定できますが、"Brown" など、あらかじめ定義されたMaterialの色を使用することを推奨します。 |
Background | Materialのデフォルトの背景色を指定します。値としては、任意のcolor 、または"Grey"などの定義済みのMaterialカラーのいずれかを指定できます。 |
設定ファイルの詳細については、「Qt Quick コントロール設定ファイル」を参照してください。
環境変数
| 変数 | 説明 |
|---|---|
QT_QUICK_CONTROLS_MATERIAL_THEME | デフォルトのMaterialテーマを指定します。値には、利用可能なテーマのいずれかを指定できます(例:"Dark" )。 |
QT_QUICK_CONTROLS_MATERIAL_VARIANT | Materialのバリアントを指定します。Material Designには、タッチデバイス向けに設計された通常バリアントと、デスクトップ向けの高密度バリアントの2種類があります。高密度バリアントでは、コントロールやフォントのサイズが小さくなります。 値として、 |
QT_QUICK_CONTROLS_MATERIAL_ACCENT | Materialのデフォルトのアクセント色を指定します。値は任意のcolor に設定できますが、"Teal"などの事前定義されたMaterialカラーのいずれかを使用することを推奨します。 |
QT_QUICK_CONTROLS_MATERIAL_PRIMARY | Materialのデフォルトのプライマリカラーを指定します。値は任意のcolor に設定できますが、"BlueGrey" などの事前定義されたMaterialカラーのいずれかを使用することを推奨します。 |
QT_QUICK_CONTROLS_MATERIAL_FOREGROUND | Materialのデフォルトの前景色を指定します。値は任意のcolor に設定できますが、"Brown" などの、あらかじめ定義されたMaterialカラーのいずれかを使用することを推奨します。 |
QT_QUICK_CONTROLS_MATERIAL_BACKGROUND | Materialのデフォルトの背景色を指定します。値としては、任意のcolor 、または"Grey"などの定義済みのMaterialカラーのいずれかを指定できます。 |
サポートされている環境変数の完全なリストについては、『Qt Quick コントロールのサポートされている環境変数』を参照してください。
依存関係
Material スタイル固有の属性を利用するには、Material スタイルを別途インポートする必要があります。なお、Material スタイルへの参照の有無にかかわらず、同じアプリケーションコードは他のどのスタイルでも実行されます。Material スタイル固有の属性は、アプリケーションが Material スタイルで実行された場合にのみ効果を発揮します。
常に読み込まれるQMLファイルにMaterialスタイルがインポートされている場合、アプリケーションがどのスタイルで実行されても正常に動作させるためには、Materialスタイルをアプリケーションと共にデプロイする必要があります。ファイルセレクタを使用することで、スタイルへのハードな依存関係を作成することなく、スタイル固有の調整を適用することができます。
定義済みのMaterialカラー
プライマリカラーとアクセントカラーは任意の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 | #EEEEEE |
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 |
関連項目: 基本スタイル、ユニバーサルスタイル
バリエーション
「Material」スタイルには、「dense」バリアントも用意されています。このバリアントでは、ボタンやデリゲートなどのコントロールの高さが低く、使用されるフォントサイズも小さくなります。マウスやキーボードによる、より正確で柔軟なユーザー操作が可能なデスクトッププラットフォームでは、「dense」バリアントの使用が推奨されます。
denseバリアントを使用するには、環境変数QT_QUICK_CONTROLS_MATERIAL_VARIANT をDense に設定するか、qtquickcontrols2.confファイルでVariant=Dense を指定します。いずれの場合も、デフォルト値はNormal です。
以下の画像は、通常バリアントとdenseバリアントを使用した場合の、一部のコントロールの違いを示しています:
|
|
なお、上記に示されている高さは、プラットフォームごとのフォントの違いによって異なる場合があることにご注意ください。
コントロールごとの注意事項
TextArea
TextArea は、Filled とOutlined の 2 つのcontainerStyle をサポートしています。Outlined TextArea では、コントロールの最上部に浮いた状態でプレースホルダーテキストが表示されます。 このため、プレースホルダーテキストはコントロールの境界外に出る必要があり、親であるTextArea やFlickableでclip がtrue に設定されている場合、テキストが切り取られる可能性があります。これを回避するために、このような場合にはtopInset を適切な値に設定します。
Materialガイドラインに従い、プレースホルダーテキストは短く保ち、複数行にまたがらないようにしてください。
TextField
TextArea について前述したクリッピングに関する問題は、TextField でも同様に発生する可能性があります。これを回避するには、TextField がclipをtrue に設定する際、topInset を適切な値に設定します。
Materialガイドラインに従い、プレースホルダーテキストは短くし、複数行にまたがらないようにしてください。
添付のプロパティドキュメント
Material.accent:color |
このアタッチドプロパティは、テーマのアクセント色を保持します。このプロパティは、任意のウィンドウやアイテムにアタッチできます。値は子要素に伝播されます。
デフォルト値はMaterial.Pink です。
次の例では、ハイライトされたボタンのアクセントカラーがMaterial.Orange に変更されています:
|
|
注: アクセントカラーは任意のcolor に設定できますが 、Materialスタイルパレットの他の色と調和するように設計された、あらかじめ定義されたMaterialカラーのいずれかを使用することをお勧めします。
Material.background:color |
このアタッチドプロパティは、テーマの背景色を保持します。このプロパティは、任意のウィンドウやアイテムにアタッチできます。値は子要素に継承されます。
デフォルト値はテーマごとに異なります(ライトまたはダーク)。
次の例では、ボタンの背景色をMaterial.Teal に変更しています:
|
|
Material.elevation:int |
このアタッチドプロパティは、コントロールのエレベーションを保持します。エレベーションが高いほど、影が濃くなります。このプロパティはどのコントロールにもアタッチできますが、すべてのコントロールでエレベーションが可視化されるわけではありません。この値は子要素には伝播されません。
デフォルト値はコントロールごとに異なります。
次の例では、浮き上がったカードのような外観を実現するために、ペインのelevationを6 に設定しています:
|
Material.foreground:color |
このアタッチドプロパティは、テーマの前景色を保持します。このプロパティは、任意のウィンドウやアイテムにアタッチできます。その値は子要素に伝播されます。
デフォルト値はテーマ(ライトまたはダーク)によって異なります。
次の例では、ボタンの前景色をMaterial.Pink に設定しています:
|
|
Material.primary:color |
このアタッチドプロパティは、テーマのプライマリカラーを保持します。このプロパティは、任意のウィンドウやアイテムにアタッチできます。その値は子要素に伝播されます。
プライマリカラーは、デフォルトでToolBar の背景色として使用されます。
デフォルト値は `Material.Indigo` です。
注: プライマリカラーは任意のcolor に設定できますが 、Materialスタイルのパレット全体と調和するよう設計された、あらかじめ定義されたMaterialカラーのいずれかを使用することをお勧めします。
Material.theme:列挙型 |
このアタッチドプロパティは、テーマがライトかダークかを保持します。このプロパティは、任意のウィンドウやアイテムにアタッチできます。値は子要素に伝播されます。
利用可能なテーマ:
| 定数 | 説明 |
|---|---|
Material.Light | ライトテーマ(デフォルト) |
Material.Dark | ダークテーマ |
Material.System | システムテーマ |
テーマをSystem に設定すると、システムのテーマカラーに基づいてライトテーマまたはダークテーマが選択されます。ただし、themeプロパティの値を読み取る際、その値は決してSystem にはならず、実際のテーマの値になります。
次の例では、ペインとボタンの両方のテーマが `Material.Dark` に設定されています:
Material.roundedScale:列挙型 |
このアタッチドプロパティは、対象のコントロールで使用される角の丸みの半径を保持します。このプロパティは任意のウィンドウやアイテムにアタッチできますが、対応しているコントロールは一部に限られます。値は子要素には伝播されません。
デフォルト値はコントロールごとに異なります。
利用可能なスケール:
| 定数 | 説明 |
|---|---|
Material.NotRounded | 角が直角 |
Material.ExtraSmallScale | 極小の角丸 |
Material.SmallScale | 角の丸み:小 |
Material.MediumScale | 中程度の角丸 |
Material.LargeScale | 角の丸みが大きい |
Material.ExtraLargeScale | 特大の角丸 |
Material.FullScale | 角を完全に丸める |
このプロパティは Qt 6.5 で追加されました。
関連項目:マテリアルスタイル: 形状。
Material.containerStyle:列挙型 |
このアタッチドプロパティは、ターゲットコントロールで使用されるコンテナのスタイルを保持します。このプロパティは任意のウィンドウやアイテムにアタッチできますが、デフォルトでこれをサポートしているのはTextField およびTextArea のみです。この値は子要素には伝播されません。
デフォルト値はコントロールごとに異なります。
利用可能なスタイル:
| 定数 | 説明 |
|---|---|
Material.Filled | 利用可能な場合は、塗りつぶしコンテナのバリエーションを使用してください |
Material.Outlined | 利用可能な場合は、アウトライン付きのコンテナバリエーションを使用する |
このプロパティは Qt 6.5 で追加されました。
関連項目:マテリアルスタイル: テキストフィールドのコンテナ。
添付のメソッドドキュメント
color color(enumeration predefined,enumeration shade) |
この添付メソッドは、指定された事前定義済みのマテリアル色と、指定されたシェードを組み合わせた有効な色値を返します。省略された場合、シェード引数のデフォルト値はMaterial.Shade500 となります。
Rectangle {
color: Material.color(Material.Red)
}関連情報
© 2026 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.









