素材スタイル
マテリアル・スタイルは、Googleマテリアル・デザイン・ガイドラインに基づいています。詳細...
インポートステートメント | インポート QtQuick.Controls.Material 2.12 |
以降 | Qt 5.7 |
付属プロパティ
- アクセント: 色
- 背景: 色
- 標高: int
- 前景: 色
- 原色: 色
- テーマ: 列挙
- roundedScale: 列挙
- containerStyle: 列挙
付属メソッド
- 色color(enumeration predefined, enumeration shade)
詳細
マテリアル・スタイルは、Googleマテリアル・デザイン・ガイドラインに基づいています。プラットフォームやデバイスのサイズを問わず、統一されたエクスペリエンスを実現します。
マテリアル・スタイルのライト・テーマ。 | マテリアル・スタイルのダーク・テーマ。 |
マテリアル・スタイルを使用してアプリケーションを実行するには、 Qt Quick コントロールでスタイルを使用するを参照してください。
注: Material スタイルは、ネイティブの Android スタイルではありません。マテリアル・スタイルは、Googleマテリアル・デザイン・ガイドラインに従った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 | デフォルトのマテリアルテーマを指定します。値は利用可能なテーマの1つで、例えば"Dark" 。 |
Variant | Material バリアントを指定します。マテリアルデザインには、タッチデバイス用に設計された通常のバリアントと、デスクトップ用の密なバリアントの 2 つのバリアントがあります。密なバリアントは、コントロールとそのフォントに小さいサイズを使用します。 値は |
Accent | デフォルトのマテリアルのアクセントカラーを指定します。値はcolor のいずれでもかまいませんが、あらかじめ定義されている Material の色のいずれかを使用することをお勧めします。例えば"Teal" です。 |
Primary | デフォルトの「素材」の原色を指定します。値には任意のcolor を指定できますが、事前に定義された「素材」の色の 1 つを使用することをお勧めします(例:"BlueGrey" )。 |
Foreground | デフォルトのマテリアルの前景色を指定します。値には任意のcolor を指定できますが、事前に定義された「素材」の色の 1 つ(例:"Brown" )を使用することをお勧めします。 |
Background | デフォルトの素材の背景色を指定します。値には任意のcolor 、または事前に定義されたマテリアルの色の1つ(例:"Grey" )を指定できます。 |
設定ファイルの詳細については、Qt Quick 制御設定ファイルを参照してください。
環境変数
変数 | 説明 |
---|---|
QT_QUICK_CONTROLS_MATERIAL_THEME | デフォルトのマテリアルテーマを指定します。値は利用可能なテーマの1つで、例えば"Dark" 。 |
QT_QUICK_CONTROLS_MATERIAL_VARIANT | Material バリアントを指定します。マテリアルデザインには、タッチデバイス用に設計された通常のバリアントと、デスクトップ用の密なバリアントの 2 つのバリアントがあります。密なバリアントは、コントロールとそのフォントに小さいサイズを使用します。 値は |
QT_QUICK_CONTROLS_MATERIAL_ACCENT | デフォルトのマテリアルのアクセントカラーを指定します。値はcolor のいずれでもかまいませんが、あらかじめ定義されている Material の色のいずれかを使用することをお勧めします。例えば"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_VARIANT
をDense
に設定するか、qtquickcontrols2.confファイルでVariant=Dense
を指定します。どちらの場合もデフォルト値はNormal
です。
以下の画像は、通常のバリアントと密なバリアントを使用した場合のコントロールの違いを示しています:
上記の高さは、各プラットフォームのフォントの違いによって異なる場合があります。
コントロール固有の注意事項
テキストエリア
TextArea は、 と の 2 つのFilled
Outlined
containerStyles をサポートしています。アウトライン化された TextArea は、コントロールの上部に位置するフローティング・プレースホルダー・テキストを持ちます。このため、 またはその子である Flickable が を に設定すると、プレースホルダ・テキストがコントロールの境界の外に出てしまい、クリッピングされることがあります。これを避けるために、 は、このような場合に適切な値に設定されます。TextArea clip true
topInset
マテリアルガイドラインに従って、プレースホルダーテキストは短くし、複数行を使用しないようにしてください。
テキストフィールド
上記でTextArea について説明したクリッピングの問題は、TextField でも発生する可能性があります。これを避けるために、TextField がtrue
にクリップを設定するときに、topInset を適切な値に設定します。
マテリアルガイドラインに従い、プレースホルダテキストは短くし、複数行を使用しないようにしてください。
添付プロパティ ドキュメント
Material.accent:色 |
この付属プロパティは、テーマのアクセントカラーを保持する。このプロパティは、任意のウィンドウまたはアイテムにアタッチすることができます。値は子に伝搬される。
デフォルト値はMaterial.Pink
です。
次の例では、ハイライトされたボタンのアクセント・カラーがMaterial.Orange
に変更されています:
Button { text: qsTr("Button") highlighted: true Material.accent: Material.Orange } |
注: アクセントはどの色でもかまいません(color )が、マテリアル・スタイル・パレットの他の部分と調和するように設計された、定義済みのマテリアル・カラーのいずれかを使用することをお勧めします。
素材.背景:色 |
このプロパティはテーマの背景色を保持する。このプロパティは、任意のウィンドウまたはアイテムにアタッチすることができます。値は子に伝搬される。
デフォルト値はテーマ固有(ライトまたはダーク)です。
次の例では、ボタンの背景色をMaterial.Teal
に変更しています:
Button { text: qsTr("Button") highlighted: true Material.background: Material.Teal } |
材料.標高:int |
この付属プロパティはコントロールの標高を保持する。標高が高いほど影が深くなる。このプロパティはどのコントロールにもアタッチできますが、すべてのコントロールが標高を視覚化するわけではありません。値は子コントロールには伝搬されない。
デフォルト値はコントロール固有である。
次の例では、昇降カードの外観を実現するために、ペインの昇降を6
に設定しています:
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
に設定されています:
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(enumeration predefined,enumeration shade) |
この付属メソッドは、指定された事前定義されたマテリアルカラーと与えられたシェードを組み合わせた有効なカラー値を返します。省略された場合、shade 引数のデフォルトはMaterial.Shade500
です。
Rectangle { color: Material.color(Material.Red) }
関連情報
© 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.