没有 PaintEvent 和 QGraphicsItem 管理的绘画
场景是我正在通过套接字获取图像矩形,并且我需要在可滚动画布中绘制它。目前我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论