我使用 QtQuick.Controls 2.2 中的 Drawer
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)
}
如果没有定义一种全新的样式,如何一次性修改它们?
我大概可以重新定义一个完全自定义的控件..但应该有一个兼容的版本?
最佳答案
您要找的是Overlay.modal
属性,正如@Blabdouze 提到的。简单的工作示例:
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"
}
}
}
默认边缘是左边,所以从那里拖动它。链接:
Documentation
Drawer source code
关于qt - 如何更改 Qt QML Drawer 的阴影颜色(不声明自定义样式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46387349/