5

たとえば、次のような共通のプロパティを持つ 2 つの異なる QML 要素があります。

import QtQuick 2.0

Rectangle {
    width: 360
    height: 360

    Text {
        id: t
        color: "red"
        text: qsTr("Hello World")
        anchors.top: parent.top
    }
    TextInput {
        text: qsTr("Hello all!")
        color: "red"
        anchors.top: t.bottom

    }
}

Text と TextInput には、同じ値を持つ「color」という同じプロパティがあることがわかります。

QSS では、次のような共通のプロパティ値を使用できます。

QWidget {
   background: "red"
}

また、qss ウィジェットに属するすべての QWidget も赤い背景になります。

QMLで共通プロパティを設定する方法はありますか?

4

1 に答える 1

10

QML で QSS を使用したカスタマイズはサポートされていません。ただし、「Style Object」メソッドを使用してプロパティを設定し、すべての QML ファイルで使用できます。

ここでは、スタイルを定義するプロパティを使用して、「Style.qml」ファイルで Style オブジェクトを定義します。ルート コンポーネントでインスタンス化して、アプリケーション全体で使用できるようにします。

// Style.qml
QtObject {
    property int textSize: 20
    property color textColor: "green"
}

// root component
Rectangle {
    ...
    Style { id: style }
    ...
}

// in use
Text {
    font.pixelSize: style.textSize
    color: style.textColor
    text: "Hello World"
}

詳細については、こちらをご覧ください。

于 2013-01-21T06:01:35.403 に答える