【发布时间】:2017-05-04 18:40:14
【问题描述】:
问题陈述
我可以让一个项目在其祖先的不透明度为 0 时呈现吗?
动机
这个问题的动机是other question of mine(我称之为“隐藏纹理源”问题)。请注意,目前我使用的是opacity: 0 而不是visible: false,但这会导致与链接问题相同的问题。
我隐藏项目的原因是this。
有一次,我只是直接剔除需要用作纹理源的每个项目。所以隐藏纹理源问题的修复很简单:(简化伪代码)
texSourceItem.opacity = 1;
cppItem.update(); // QQuickFramebufferObject
texSourceItem.opacity = 0; // reset back to 0
但现在我也在剔除整个Rows 的此类项目。而且由于不透明度是继承的,如果我想更新 cppItem,我必须为整个父 Row 做 unhide-hide dance。然后,两个纹理源项目可能会发生具有互锁时序的 unhide-hide 过程,因此为了避免错误,我必须保留一个自定义引用计数器,该计数器知道当前正在更新多少 cppItems。这对我来说太复杂了。因此,回答我的问题将是有益的。
【问题讨论】:
标签: qt qml transparency qtquick2 culling