如何更改 Qt QML Drawer 的阴影颜色(不声明自定义样式)?
How to change shadow color of Qt QML Drawer (without declaring custom Style)?
我使用 QtQuick.Controls 2.2
的抽屉
Drawer {
id: drawer
width: parent.width/2
height: parent.height
modal: true
...
}
风格:
[Controls]
Style=Material
[Material]
Theme=Dark
Accent=Red
Primary=#c64949
我想改变抽屉阴影的颜色。样式 Material 使用 white color for the shadow(在打开的抽屉右侧)。
-- 赏金赞助商编辑--
我发现影子被定义了,即。这里:http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports/controls/Drawer.qml
如:
T.Overlay.modal: Rectangle {
color: Color.transparent(control.palette.shadow, 0.5)
}
T.Overlay.modeless: Rectangle {
color: Color.transparent(control.palette.shadow, 0.12)
}
不定义一个全新的Style,怎么能一次性修改呢?
我想我可以重新定义一个完全自定义的控件..但是应该有一个兼容的版本?
如@Blabdouze 所述,您正在寻找的是 Overlay.modal
属性。简单的工作示例:
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5
Window {
visible: true
width: 640
height: 480
title: qsTr("test")
Drawer {
height: parent.height
width: parent.width/2
Rectangle {
anchors.fill: parent
color: "green"
}
Overlay.modal: Rectangle {
color: "red"
}
}
}
左边是默认边,所以从那里拖动它。
链接:
我使用 QtQuick.Controls 2.2
的抽屉Drawer {
id: drawer
width: parent.width/2
height: parent.height
modal: true
...
}
风格:
[Controls]
Style=Material
[Material]
Theme=Dark
Accent=Red
Primary=#c64949
我想改变抽屉阴影的颜色。样式 Material 使用 white color for the shadow(在打开的抽屉右侧)。
-- 赏金赞助商编辑--
我发现影子被定义了,即。这里:http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports/controls/Drawer.qml
如:
T.Overlay.modal: Rectangle {
color: Color.transparent(control.palette.shadow, 0.5)
}
T.Overlay.modeless: Rectangle {
color: Color.transparent(control.palette.shadow, 0.12)
}
不定义一个全新的Style,怎么能一次性修改呢?
我想我可以重新定义一个完全自定义的控件..但是应该有一个兼容的版本?
如@Blabdouze 所述,您正在寻找的是 Overlay.modal
属性。简单的工作示例:
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5
Window {
visible: true
width: 640
height: 480
title: qsTr("test")
Drawer {
height: parent.height
width: parent.width/2
Rectangle {
anchors.fill: parent
color: "green"
}
Overlay.modal: Rectangle {
color: "red"
}
}
}
左边是默认边,所以从那里拖动它。
链接: