Material Qml 中的样式不加载颜色

Material Style In Qml Does Not Load Colors

我使用方法 here to use material design in my QtQuick project and used Accent and Themes from here 控制正常 qml 文件中 material 样式的加载,但在加载器加载的 qml 文件中结果是这样的:


这个装载机在 main.qml :

Loader{
    id:myLoader
    anchors.fill: parent
    source: "LoginPage.qml"
}

这是我的动态 qml 文件

import QtQuick 2.8
import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.3
import QtGraphicalEffects 1.0
Rectangle{
    Material.theme: Material.Dark
    Material.accent: Material.Teal
    property string error_msg: ""
    id: loginPage
    Button {
        id: button
        width: 80
        anchors.verticalCenter: parent.verticalCenter
        anchors.right: parent.right
        anchors.rightMargin: 0
        font.family: "B Nazanin"
        enabled: webView.loadProgress == 100 ? true:false
        KeyNavigation.tab: button1
        Material.accent: Material.Orange

        onClicked: {
            login()
        }
    }
}

推测那里的黑暗有黑暗的背景。它不会为您设置 window 背景,它只会影响 GUI 控件。特别是按钮不使用强调色,只使用前景色,除非启用切换,在这种情况下它将使用强调色来表示。

  Material.theme: Material.Dark
  Material.accent: Material.Teal


  Rectangle {
    anchors.fill: r2
    color: "#262626"
  }

  Row {
    id: r1
    Button {
      text: "test"
      checkable: true
      Material.accent: Material.Orange
    }
    Button {
      text: "test"
      checkable: true
    }
  }

  Rectangle {
    anchors.fill: r2
  }

  Row {
    id: r2
    anchors.top: r1.bottom
    Button {
      text: "test"
      checkable: true
      Material.accent: Material.Orange
    }
    Button {
      text: "test"
      checkable: true
    }
  }

如您所见,在白色背景上,深色主题按钮看起来模糊且褪色。如果你想设置按钮颜色,那就是 Material.background 而文本是 Material.foreground.