4

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

我在 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"
    }
}
4

1 回答 1

8

ApplicationWindowStyleQML 类型为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"
        }
    }
}
于 2015-03-04T14:26:00.957 回答