为什么 QGrapchicsScene 前景无效似乎会引发 itemlayer 更新?

发布于 2024-12-18 07:32:22 字数 212 浏览 2 评论 0 原文

我有一个“地图”,在“itemslayer”处有 100.000 个矩形, 我想要创建动态线条,并将其绘制在前景层。 (也就是说,我不想有很多更新......) 性能很差,你注意到鼠标移动起来很重,我认为这是这条线“接触”的每个矩形的更新。 那么前景层是什么呢?我认为它可以让我在不更新 itemlayer 的情况下绘制 grapchisview ...... 也许这与前台没有缓存有关? 有什么想法吗?谢谢。

I have a 'map' with 100.000 rectangles at the 'itemslayer',
I want to have a dynamic line creation and I draw it at Foreground layer. (That is, I dont want to have a lot of updates... )
The performance is poor, you note the mouse heavy to move, An I think that is an update for every rectangle that this line 'touchs' .
What is for the foregroundlayer then? I thought that It'd let me to draw over a grapchisview without updating the itemlayer...
Maybe it is related with there is not cache for foreground ?
Any idea ? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谜兔 2024-12-25 07:32:22

当我阅读 4.8.0 的文档时,它指出:

请注意,QGraphicsView 目前仅支持后台缓存(请参阅 QGraphicsView::CacheBackground)。如果传递了除 QGraphicsScene::BackgroundLayer 之外的任何图层,则此函数相当于调用 update() 。

因此,如果您只想更新前景图层,那么它无论如何都会绘制所有内容,真糟糕...

我知道它是不是答案,但它确实证实了您所看到的。

When I was reading the documentation on 4.8.0 and it states this:

Note that QGraphicsView currently supports background caching only (see QGraphicsView::CacheBackground). This function is equivalent to calling update() if any layer but QGraphicsScene::BackgroundLayer is passed.

So, if you just want to update the foreground layer, then it will draw everything anyways, bummer...

I know it's not a answer, but it does confirm what you are seeing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文