gpt4 book ai didi

qt - 如何在布局中的项目上使用 ColorOverlay?

转载 作者:行者123 更新时间:2023-12-04 02:56:47 27 4
gpt4 key购买 nike

我有一个包含一些项目的 RowLayout

RowLayout {
anchors.fill: parent
anchors.leftMargin: 3

Image {
id: icon
source: imgSource
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
}

Text {
id: caption
height: parent.height
fontSizeMode: Text.Fit
font.pointSize: textSize
verticalAlignment: Text.AlignVCenter
text: captionText
color: "white"
}
}

我想在此布局内的 Image 上应用 ColorOverlay:

ColorOverlay {
id: overlay
anchors.fill: icon
source: icon
color: "#ff0000ff"
}

但是如果我将 ColorOverlay 放在布局之外,那么我就无法使用 anchors.fill: icon。如果我让它成为一个 child

    Image {
id: icon
source: imgSource
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
ColorOverlay {
id: overlay
anchors.fill: icon
source: icon
color: "#ff0000ff"
}
}

它似乎有效,但我在控制台中收到警告 ShaderEffectSource: 'recursive' must be set to true when rendering recursively。

最佳答案

要对 Item 设置效果,您可以使用 Item layers ,在你的情况下是:

Image {
source: imgSource
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
layer {
enabled: true
effect: ColorOverlay {
color: "#ff0000ff"
}
}
}

请注意,您不必设置效果的源或大小,它会自动完成。

关于qt - 如何在布局中的项目上使用 ColorOverlay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52803447/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com