Qt 文本放置阴影
在QML中,有没有合适的方法向文本对象添加外部阴影?我尝试使用DropShadow,但它用黑色填充整个文本字段Qt 文本放置阴影,qt,qml,dropshadow,Qt,Qml,Dropshadow,在QML中,有没有合适的方法向文本对象添加外部阴影?我尝试使用DropShadow,但它用黑色填充整个文本字段 Text { id: textId font.pixelSize: 36 font.letterSpacing: 0.9 color: "red" text: "Hello World" DropShadow { anchors.fill: parent verticalOffset: 2
Text {
id: textId
font.pixelSize: 36
font.letterSpacing: 0.9
color: "red"
text: "Hello World"
DropShadow {
anchors.fill: parent
verticalOffset: 2
color: "#80000000"
radius: 1
samples: 3
}
}
我还尝试用source替换anchors.fill,并设置文本id。同时在文本对象外部使用DropShadow。没有影子
我的目标是获得css样式的等价物
text-shadow: 0 2px 4px
最简单的方法是使用: 您也可以像在
DropShadow
中那样进行操作,其中DropShadow
是一个同级项:
import QtQuick 2.9
import QtQuick.Window 2.3
import QtGraphicalEffects 1.0
Window {
id: window
width: 800
height: 600
visible: true
Text {
id: textId
font.pixelSize: 36
font.letterSpacing: 0.9
color: "red"
text: "Hello World"
}
DropShadow {
anchors.fill: textId
source: textId
verticalOffset: 2
color: "#80000000"
radius: 1
samples: 3
}
}
在本例中,您缺少源代码赋值,但如果您尝试将阴影作为文本的子对象,则递归渲染也会出错:
以递归方式渲染时,ShaderEffectSource:“recursive”必须设置为true
谢谢我尝试了图层并应用了效果,但是如果我将锚定应用到文本对象,它会忽略它。但是如果我使用第二种方法,并将DropShadow作为兄弟,它将使用锚。啊,似乎如果您从第一个代码片段中提取anchors.fill:parent
,那么它仍然有效。我可能不小心把它忘在里面了。更新了答案。
import QtQuick 2.9
import QtQuick.Window 2.3
import QtGraphicalEffects 1.0
Window {
id: window
width: 800
height: 600
visible: true
Text {
id: textId
font.pixelSize: 36
font.letterSpacing: 0.9
color: "red"
text: "Hello World"
}
DropShadow {
anchors.fill: textId
source: textId
verticalOffset: 2
color: "#80000000"
radius: 1
samples: 3
}
}