C
コントロール・スタイリング
コントロールのカスタマイズ
場合によっては、アプリケーションの UI の一部に異なるスタイルを使用し、他の部分は共通または標準のスタイルを使用したいと思うかもしれません。おそらく、使用しているスタイルには満足しているが、特別な意味を持つ特定のボタンがあるとします。
このボタンを作成する1つの方法は、必要な場所にそのボタンを定義することです。例えば、デフォルトスタイルのボタンの角が四角いことに不満があるとします。角を丸くするには、background アイテムをオーバーライドして、Rectangle の半径プロパティを設定します:
import QtQuick 2.15 import QtQuick.Controls 2.15 Rectangle { id: root color: "#d7d1df" readonly property int leftMargin: 10 readonly property int rowSpacing: 14 Button { id: button text: qsTr("A Special Button") background: Rectangle { implicitWidth: 100 implicitHeight: 40 color: button.down ? "#d6d6d6" : "#f6f6f6" radius: 4 } } }
先に説明したボタンを作成するもう一つの便利な方法は、例えば、MyButton.qml という別のファイルで定義することです。この方法は、ボタンをいくつかの場所で使用する予定がある場合に非常に便利です。
import QtQuick 2.15 import QtQuick.Controls 2.15 Button { id: btn background: Rectangle { implicitWidth: 100 implicitHeight: 40 color: btn.down ? "#d6d6d6" : "#f6f6f6" radius: 4 } }
アプリケーションでコントロールを使用するには、ファイル名で参照します:
Item{ Rectangle { id: root color: "#d7d1df" readonly property int leftMargin: 10 readonly property int rowSpacing: 14 MyButton { id: button text: qsTr("A Special Button") } } }
デフォルトスタイルとカスタムスタイル
Qt Quick とQt Quick Ultralite のスタイルの違い
- Qt Quick Ultraliteは現在デフォルト・スタイルだけを提供しています。
- Qt Quick Ultraliteはコンパイル時のスタイルのみをサポートします。
- スタイル付きコントロールを定義するために使用されるスタイルなしのデフォルトコントロールは
QtQuick.Templatesにあります。 - スタイル・モジュールはqmlprojectファイルで定義し、消費プロジェクトの
ModuleFilesノードに追加する必要があります。 - MCU.Config.controlsStyleqmlproject プロパティには、カスタム・スタイル・モジュールの URI を設定する必要があります。
コントロールにデフォルト・スタイルを使用する
コントロールにデフォルト・スタイルを使用するには、.qml ファイルでQtQuick.Controls をインポートする必要があります。
コントロールのカスタム・スタイルの作成と使用
一般に、Qt Quick Ultraliteでは、Qt Quick に従ってカスタムスタイルを定義します。Qt Quick アプローチの詳細については、 Qt Quick コントロールのカスタマイズを参照してください。
コントロールのカスタムスタイルを作成するには
QtQuick.Templatesに基づいて、スタイル用のカスタムコンポーネントを実装します。QtQuick.Templatesモジュールのコンポーネントは便利なベースライン機能を備えており、デフォルト・スタイルのコントロールと互換性のあるコンポーネントを簡単に作成できます。- カスタム スタイル用の QML モジュールを作成します。
モジュールは、
.qmlprojectファイル、QML ファイル、C++ ヘッダー、画像リソースで構成されます。MyControlsStyle/Button.qml MyControlsStyle/button-background.png MyControlsStyle/Helper.h MyControlsStyle/MyControlsStyle.qmlproject
コントロールにカスタム・スタイルを使用するには
- qmlprojectファイルでスタイル・モジュールを定義し、コンシューマ・プロジェクトの
ModuleFilesノードに追加します。 QtQuick.Controlsを提供するように、MCU.Config.controlsStyleqmlproject プロパティをカスタム・スタイル・モジュールの URI に設定します。上記の例では、
MCU.Config.controlsStyle: "MyControlsStyle"を使用します。.qmlファイルにQtQuick.Controlsをインポートします。
参考として、Qt Quick Ultralite styling Exampleを参照してください。
特定の Qt ライセンスの下で利用可能です。
詳細を参照してください。