素材スタイル
マテリアル・スタイルは、Googleマテリアル・デザイン・ガイドラインに基づいています。詳細...
インポートステートメント | インポート QtQuick.Controls.Material 2.12 |
以降 | Qt 5.7 |
付属プロパティ
- アクセント: 色
- 背景: 色
- 標高: int
- 前景: 色
- 原色: 色
- テーマ: 列挙
- roundedScale: 列挙
- containerStyle: 列挙
付属メソッド
- 色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" 。 |
Variant | Material バリアントを指定します。Material Design には 2 つのバリアントがあります: タッチデバイス用に設計された通常のバリアントと、デスクトップ用の 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_VARIANT | Material バリアントを指定します。Material Design には 2 つのバリアントがあります: タッチデバイス用に設計された通常のバリアントと、デスクトップ用の 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_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.background:色 |
このプロパティは、テーマの背景色を保持します。このプロパティは、任意のウィンドウまたはアイテムにアタッチできます。値は子に伝搬される。
デフォルト値はテーマ固有(ライトまたはダーク)です。
次の例では、ボタンの背景色をMaterial.Teal
に変更しています:
Button { text: qsTr("Button") highlighted: true Material.background: Material.Teal } |
Material.elevation: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 | 利用可能であれば、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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。