关于Qt Graphics View Framework在项目数量较多时的效率问题

发布于 2025-01-06 01:31:44 字数 183 浏览 1 评论 0原文

最近,我使用 QT Graphohics View Framework 开发了一个新的可视化软件。 在软件中,我们需要显示的项目很多,包括点和线,大约一万个以上。 但在显示过程中,存在池效率低、经常无响应的情况。当我们想要缩放或者移动场景的位置时,我们必须等待一段时间,这令人难以忍受。 所以,我想知道这是否正常以及如何提高这种情况的效率。 谢谢 。

Recently, i develop a new visualization software using the QT Grapohics View Framework.
In the software, we need show a lot of items, include the point and line, about ten thousand above.
But, in the process of display , there are pool efficiency and often no response. When we want to zoom it or remove the position of scene, we must wait a span and it hard to bear.
so, i want to know whether it is normal and how to improve the efficiency about the situation.
Thanks .

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

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

发布评论

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

评论(2

往事风中埋 2025-01-13 01:31:44

我使用图形视图框架来绘制地理地图(具有数千个点的大多边形)。而且它做得非常好。

在 Qt-4.6 中,缩放和移动时存在延迟。启用抗锯齿功能后,延迟时间太长,最好终止该应用程序。因此请尝试使用最新版本的Qt

另外,如果您使用自定义 QGraphicsItem-s,请查看这篇文章: Qt:提高 QGraphicsView 性能

I use Graphics View Framework to draw geographical map (large polygons with thousands of points). And it does it very well.

In Qt-4.6 there were delays when zooming and moving around. With antialiasing enabled dealys were so long that it was better to kill the application. So try to use the latest version of Qt.

Also if you use custom QGraphicsItem-s check this article: Qt: Improving QGraphicsView Performance.

豆芽 2025-01-13 01:31:44

我通过以下方式解决了最严重的性能问题:

  • 禁用滚动条(在放大/缩小和滚动时有很大帮助),
  • 用画家->drawPoints(pointCloud.constData(),pointCloud.size())绘制点;
  • 在移动项目时禁用索引或启用索引但避免某些操作
  • 使用化妆笔、0 宽度或 Qt::NoPen 始终尽可能
  • setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
  • setViewportUpdateMode(FullViewportUpdate);

I fixed my most serious problems with performance by:

  • disabling the scrool bars (it helped a lot when zooming in/out and scrolling),
  • ploting points with painter->drawPoints(pointCloud.constData(), pointCloud.size());
  • disable indexing in case of moving items or enable indexing but avoiding some operations
  • use cosmetic pen, 0 width or Qt::NoPen always that possible
  • setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
  • setViewportUpdateMode(FullViewportUpdate);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文