Qt quick ApplicationWindow 'color' 背景颜色不起作用

Qt quick ApplicationWindow 'color' for background color doesn't work

我用一个main.qml创建了一个简单的Qt quick应用程序,就像下面的代码。问题是 window 的背景颜色没有设置为 #ffffff,而是设置为浅灰色(我认为是 Windows 上 window 的默认颜色)。矩形的颜色设置正确。

我在 windows.

上使用基于 Qt 5.4.1 的 Qt Creator 3.3.1(开源)
import QtQuick 2.4
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.3
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2

ApplicationWindow {
    title: qsTr("Hello")
    width: 200
    height: 200
    visible: true
    color: "#FFFFFF"

    Rectangle {
        id: rectangle1
        width: 100
        height: 100
        color: "#ffffff"
    }
}

ApplicationWindowStyle QML 类型为 ApplicationWindow 提供样式。默认 ApplicationWindowStyle 表示背景为:

background: Rectangle {
        visible: !styleData.hasColor
        color: SystemPaletteSingleton.window(true)
}

styleData.hasColor 属性 定义为:

property QtObject styleData: QtObject {
    readonly property bool hasColor: window.color != "#ffffff"
}

因此,如果您的 ApplicationWindow 颜色是 #FFFFFF,您会在 window 背景上看到浅灰色矩形。

要制作白色背景,您需要设置自定义ApplicationWindowStyle

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    style: ApplicationWindowStyle {
        background: Rectangle {
            color: "#FFFFFF"
        }
    }
}