Qt快速ApplicationWindow'颜色'为背景颜色不起作用

zha*_*gwt 4 qt background-color applicationwindow

我用一个main.qml创建了一个简单的Qt快速应用程序,它类似于下面的代码.问题是窗口的背景颜色未设置为#ffffff,而是设置为浅灰色(Windows上我认为的窗口的默认颜色).矩形的颜色设置正确.

我在Windows上使用基于Qt 5.4.1的Qt Creator 3.3.1(opensource).

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"
    }
}
Run Code Online (Sandbox Code Playgroud)

Mee*_*fte 8

ApplicationWindowStyleQML Type提供样式ApplicationWindow.默认 ApplicationWindowStyle代表背景为:

background: Rectangle {
        visible: !styleData.hasColor
        color: SystemPaletteSingleton.window(true)
}
Run Code Online (Sandbox Code Playgroud)

styleData.hasColor 属性定义为:

property QtObject styleData: QtObject {
    readonly property bool hasColor: window.color != "#ffffff"
}
Run Code Online (Sandbox Code Playgroud)

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

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

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    style: ApplicationWindowStyle {
        background: Rectangle {
            color: "#FFFFFF"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)