为什么 QGrapchicsScene 前景无效似乎会引发 itemlayer 更新?
我有一个“地图”,在“itemslayer”处有 100.000 个矩形, 我想要创建动态线条,并将其绘制在前景层。 (也就是说,我不想有很多更新......) 性能很差,你注意到鼠标移动起来很重,我认为这是这条线“接触”的每个矩形的更新。 那么前景层是什么呢?我认为它可以让我在不更新 itemlayer 的情况下绘制 grapchisview ...... 也许这与前台没有缓存有关? 有什么想法吗?谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当我阅读 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.