没有 PaintEvent 和 QGraphicsItem 管理的绘画

发布于 2024-11-05 14:44:33 字数 466 浏览 1 评论 0原文

场景是我正在通过套接字获取图像矩形,并且我需要在可滚动画布中绘制它。目前我正在使用 QGraphicsScene 并使用 QGraphicsPixmapItem 进行绘图,但经过几次后,当一个像素图与另一个像素图重叠时,就无需保留底部的像素图了。我不知道有什么简单的方法可以找出重叠的项目并删除它。所以如果像这样重叠的话它应该占用大量内存。

还有另一种出路。制作一个QWidget并将其放入QScrollArea中,现在使用QPainter(在paintEvent之外?)绘制QWidget。如果我在 paintEvent 之外绘制它,我需要继承 QWidget 并制作一个自定义的。向它传递一个 Pixmap 并让它通过调用 update() 在自己的 PaintEvent 中进行绘制

有任何批评吗?还有其他直接的解决方案吗?

The Scenario is I am getting Rects of Images over the socket and I need to draw it in a Scrollable Canvas. at the moment I am using a QGraphicsScene and drawing using QGraphicsPixmapItem but after few times when one pixmap overlaps another there is no need to keep the bottom one. and I dont know any simple way to find out the overlapped item and delete it. so its supposed to take huge memory if overlapping goes on like this.

there exists another way out. Make a QWidget and put it in a QScrollArea now draw the QWidget using a QPainter (outside paintEvent ?). If I draw it outside paintEvent I need to inherit the QWidget and make a custom one. pass it a Pixmap and let it draw in its own paintEvent by calling update()

Any critiques ? any other Straight forward solutions there ?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文