2017-01-07 31 views
1

我正在玩Qt 5.8 RC以及在Universal和Material主題中引入的新屬性System。如何在最新的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說:

設置主題,系統選擇任一個光或基於系統主題顏色黑暗的主題 。但是,當閱讀 的主題屬性值時,該值永遠不是System,而是實際的主題。

所以,如果你檢查的Material.themeUniversal.theme值,都應該回到他們的有效值,而不是你設置的值。

+0

嗯..這很奇怪,因爲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不能正常工作。當我使用Assistant從頭開始一個新項目(並在導入中放入最新版本號)時,'qtquickcontrols2.conf'中的'Accent = BlueGrey'不起作用:在控制檯中看到一個錯誤,'Theme = Dark'或'主題=光'是好的,但'主題=系統'總是回光。 – MBach

相關問題