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"
}
}
}
我用一个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"
}
}
}