Qt快速应用程序窗口';颜色';对于背景色不';行不通
我用一个main.qml创建了一个简单的Qt快速应用程序,如下代码所示。问题是窗口的背景色没有设置为Qt快速应用程序窗口';颜色';对于背景色不';行不通,qt,background-color,applicationwindow,Qt,Background Color,Applicationwindow,我用一个main.qml创建了一个简单的Qt快速应用程序,如下代码所示。问题是窗口的背景色没有设置为#ffffff,而是设置为浅灰色(我认为是窗口的默认颜色)。矩形的颜色设置正确 我在windows上使用基于Qt5.4.1的QtCreator3.3.1(开源) import QtQuick 2.4 import QtQuick.Layouts 1.1 import QtQuick.Controls.Styles 1.3 import QtQuick.Controls 1.3 import QtQ
#ffffff
,而是设置为浅灰色(我认为是窗口的默认颜色)。矩形的颜色设置正确
我在windows上使用基于Qt5.4.1的QtCreator3.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
提供样式。违约
ApplicationWindowsStyle
将背景表示为:
background: Rectangle {
visible: !styleData.hasColor
color: SystemPaletteSingleton.window(true)
}
styleData.hasColor
属性定义为:
property QtObject styleData: QtObject {
readonly property bool hasColor: window.color != "#ffffff"
}
因此,如果您的应用程序窗口
颜色为#FFFFFF
,您将看到窗口背景上的浅灰色矩形
要制作白色背景,需要设置自定义ApplicationWindowStyle
ApplicationWindow {
visible: true
width: 640
height: 480
style: ApplicationWindowStyle {
background: Rectangle {
color: "#FFFFFF"
}
}
}
谢谢你解释它是如何工作的。顺便说一句,任何我可以在Qt文档网站或其他网站上找到此类详细信息的建议。在问这个问题之前,我做了一些搜索,但没有发现任何有用的东西。我不熟悉Qt:)谢谢。@zhangwt您可以在上查看Qt源代码。Qt设计器不识别这些属性正常吗?文本编辑器一直将“style”标记为无效的属性名称,QMLJS设计器将不再显示布局。但是,当我编译它时,它运行良好。@Daniel Saner@DanielSaner使用“import QtQuick.Controls.Styles 1.4”为我解决了无法识别的属性问题(以前我使用的是1.2)。