2017-07-06 72 views
1

我应该在运行时设置Material样式属性,例如当用户单击定义的按钮时更改主题值(明暗)。 我已经使用qtquickcontrols2.conf及其属性(主题,口音和主)配置了材质样式。我无法导入QtQuick.Controls.Materials 2.0,因为我不知道,但我正在使用QtCreator 4.0.2在Ubuntu上工作,并且未检测到QtQuick.Controls.Materials和QtQuick.Controls.Universal导入。 我的目标是简单地改变材质风格的主题,从浅到深,反之亦然。我怎样才能整合这个功能?谢谢你的建议。Qml QtQuickControls2,在运行时更改样式属性

问候 丹尼尔

+0

您需要的Qt 5.7.0有可用的进口。你正在使用哪个Qt版本? – Mitch

回答

2

我无法导入QtQuick.Controls.Materials 2.0,因为我不知道,但我工作在Ubuntu与QtCreator 4.0.2和QtQuick.Controls。未检测到材料和QtQuick.Controls.Universal导入。

你至少需要的Qt 5.7.0为了有Qt Quick Controls 2.0进口可用。

我的目标是简单地改变材质风格的主题,从浅到深,反之亦然。

您在运行时切换主题是这样的:

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.Controls.Material 2.0 

ApplicationWindow { 
    id: window 
    width: 200 
    height: 200 
    visible: true 

    Material.theme: themeSwitch.checked ? Material.Dark : Material.Light 

    Switch { 
     id: themeSwitch 
     text: "Dark" 
     anchors.centerIn: parent 
    } 
} 

gif

+0

我已导入(导入QtQuick.Controls 2.0)但未检测到(导入QtQuick.Controls.Material 2.0)(找不到Qml模块)。我该如何解决?可能是qt创建者有一个bug。 – daniele86

+0

It Works!谢谢 – daniele86