问题陈述
我可以当它的一个祖先具有不透明度为0的项目呈现?当我的祖先拥有不透明度0时,我可以让它呈现吗?
动机
对这个问题的动机是other question of mine(我称之为“隐藏纹理源”的问题)。请注意,目前我正在使用opacity: 0
而不是visible: false
,但这会导致与链接问题中相同的问题。
我隐藏物品的原因是this。
有一次,我只是直接挑选每个需要用作纹理源的项目。因此,对于隐藏纹理源问题的解决方法很简单:(简化的伪代码)
texSourceItem.opacity = 1;
cppItem.update(); // QQuickFramebufferObject
texSourceItem.opacity = 0; // reset back to 0
但是现在我还扑杀整个 S,从而物品。由于不透明是继承的,如果我想更新cppItem,我必须为整个父母做隐藏舞蹈。然后,可能会发生两个纹理源项目以互锁定时执行隐藏隐藏过程,为了避免错误,我必须保留一个自定义引用计数器,以知道当前正在更新多少个cppItems。这对我来说太复杂了。所以我的问题的答案将是有益的。
回复:ShaderEffectSource解决方案:你试过了吗?我非常肯定,当'rect'1'具有'opacity:0'时,ShaderEffectSource不能使用它(或其子项)作为sourceItem。那么,您不会收到错误消息/崩溃,但ShaderEffectSource中不会显示任何内容。 Re:使这个项目成为兄弟姐妹:这对我来说不起作用,因为我确实需要不透明度继承,我只是不希望它在更新cppItem的时候应用。 –
我已经尝试过了,对于我来说就像发布一样。 – derM