2017-01-07 10 views
1

Qt 5.8 RCとユニバーサルテーマとマテリアルテーマの両方に導入された新しい属性システムで遊んでいます。最新のQt 5.8でUniversal.SystemまたはMaterial.Systemを使用するには?

しかし、カスタマイズ可能なアプリを設計するときは、ダーク、ライト、またはシステムと組み合わせてユニバーサルまたはマテリアルを選択できます。システムが実際に文字列 "System"ではなく "Dark"または "Light"であることをどのように知ることができますか?ここで

は、私は(settings.qml)を構築しようとしているものです: Miam-Player-QML

明らか
RadioButton { 
    text: qsTr("Light") 
    checked: appSettings.theme === "Light" 
    ButtonGroup.group: modeBG 
    onClicked: { 
     appSettings.theme = "Light" 
     appSettings.background = "white" 
     appSettings.menuPaneColor = "#eeeeee" 
    } 
} 
RadioButton { 
    text: qsTr("Dark") 
    checked: appSettings.theme === "Dark" 
    ButtonGroup.group: modeBG 
    onClicked: { 
     appSettings.theme = "Dark" 
     appSettings.background = "black" 
     appSettings.menuPaneColor = "#171717" 
    } 
} 
RadioButton { 
    text: qsTr("System theme") 
    ButtonGroup.group: modeBG 
    onClicked: { 
     appSettings.theme = "System" 
     //appSettings.background = "black" 
     //appSettings.menuPaneColor = "#171717" 
    } 
} 

、「ハード」の値はもはや作品(main.qml)で動作するように使用され、次のコード:

ToolButton { 
    id: burgerMenu 
    checkable: appSettings.burgerMenuIsChecked 
    contentItem: Image { 
     fillMode: Image.Pad 
     horizontalAlignment: Image.AlignHCenter 
     verticalAlignment: Image.AlignVCenter 
     source: "qrc:/images/" + appSettings.style + "/" + appSettings.theme + "/drawer.png" 
    } 
    ... 
} 

+0

別の[設定ファイル](https://doc-snapshots.qt.io/qt5-5.8/qtquickcontrols2-configuration.html)を指定してC++でそのチェックを試みることができます – DuKes0mE

答えて

1

documentation氏は述べています。システムにテーマを設定

は、光やシステムテーマカラーに基づいて暗いテーマ のいずれかを選択します。しかし、 というテーマプロパティの値を読むとき、その値は決してシステムではなく、実際のテーマです。あなたはMaterial.themeUniversal.themeの値をチェックすると

ので、両方ではなく、あなたが設定した値よりも、その実効値を返す必要があります。

+0

Hmm ..それはonClicked :{console.log(Material.theme)}はQt Creatorで常にqml:0を返します – MBach

+0

'Material.theme:Material.Dark; Component.onCompleted:print(Material.theme) '私に' 1'を出力します。 'Material.theme:Material.System'を設定すると、あなたのシステムが使用しているものが使用されます。軽いテーマの場合、常に' 0'を返します:http://code.qt.io/cgit/qt/qtquickcontrols2。 git/tree/src/imports/controls/material/qquickmaterialstyle_p.h#n104 – Mitch

+0

私がダウンロードしたRCはうまくいきません。私がアシスタントを使って最初から新しいプロジェクトを開始したとき(そして最新のリリース番号をインポートに入れたとき)、 'qtquickcontrols2.conf'の' Accent = BlueGrey'はうまくいきません:コンソールに 'Theme = Dark'や' Theme = Light'は問題ありませんが、 'Theme = System'は常に光の上にフォールバックしています。 – MBach

関連する問題