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

时间:2015-03-04 10:45:28

标签: 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"
    }
}

1 个答案:

答案 0 :(得分:7)

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,则会在窗口背景上看到浅灰色矩形。

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

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