gpt4 book ai didi

qt - 当项目完成重绘时,我会收到通知吗?

转载 作者:行者123 更新时间:2023-12-04 16:10:16 28 4
gpt4 key购买 nike

我正在制作一个项目的快照(通过 ShaderEffectSourcelive: false ),但我有时(200 个案例中有 1 个)得到一个空白快照。我正在根据这样的信号制作快照:

Image {
onStatusChanged: {
if (status == Image.Ready) {
snapshotter.makeSnapshot();
}
}
}

这只是作为一个整体上下文。我现在不会发布测试用例,因为它是一个很大的应用程序,而且我还没有隔离测试用例。这可能对 future 的问题很重要。

所以我还没有问“我的代码中的错误在哪里”。相反,我有一个简单的问题,我认为它可以帮助我修复错误:

Item 完成重绘后我能收到通知吗?

理由:也许当我得到 status == Image.Ready , 图像只是加载 并且还没有将加载的数据绘制到离屏表面。因此,如果我想要的信号存在,我可以连接到,而不是连接到Image.statusChanged。 .

注意:我可以实现自己的 NotifyingImage类似 Image 的组件但另外公开了一个 repainted信号。但我想知道是否有内置方法。

相关问题:Get notified when QQuickItem will need updating”。但是询问者对知道项目 data 何时更新感到满意,我问的是 repainted。信号,这是比他要求的发生的事情。

最佳答案

据我所知,Window 始终作为一个整体呈现。所以你可以使用 WindowafterRendering信号。

缺点:只要窗口中的任何内容发生变化,它就会被触发。但结合 (status == Image.Ready) 它可能适合你。

编辑:
blog post, announcing the release of Qt5.8 Qt Companies CTO 写道:

In addition, the scene graph now supports partial updates to the screen if only a small area of the scenography changed. This brings some larger performance improvements to the Qt Quick 2D renderer.

我不知道信号 afterRendering 的实现细节,所以我无法判断这是否是在这样的部分更新 之后触发的,如果是,又是如何触发的告诉您,该部分更新是否涉及您感兴趣的那部分。

关于qt - 当项目完成重绘时,我会收到通知吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43479213/

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