使用 QPainter 在 QWidget 上绘制 QPixmap Rects
Posted
技术标签:
【中文标题】使用 QPainter 在 QWidget 上绘制 QPixmap Rects【英文标题】:Drawing QPixmap Rects Over QWidget with QPainter 【发布时间】:2011-04-19 17:22:23 【问题描述】:我将通过套接字序列化QPixmap
Rect
s。我将对它们进行反序列化并在QWidget
中绘制矩形现在我的问题是我应该为此使用哪个QWidget
?是否有任何关于我应该如何进行的再污染?目前我决定使用QPainter
并使用drawPixmap
绘制我是否走错了方向?
【问题讨论】:
需要更多信息...您对绘制的像素图在做什么?主要目的是图形应用程序,还是您希望像素图成为带有其他小部件的表单的背景,还是什么?正如您的问题所述,很难给出建议。 您是在绘制像素图和矩形,还是在矩形中绘制像素图?如果稍后,矩形是像素图的目的地,还是像素图中要绘制的部分? 实际上没有 这是一个屏幕共享应用程序。一端是发送在查看器屏幕上绘制的屏幕截图矩形。 【参考方案1】:听起来您可能希望使用在QGraphicsScene
上绘制的QGraphicsPixmapItem
实例和QGraphicsView
。
见Qt Graphics View Framework:
图形视图为 管理大型企业并与之互动 定制二维图形数量 项目,以及一个视图小部件 在支持下可视化项目 用于缩放和旋转。
框架包含一个事件 传播架构,允许 精确的双精度交互 上项目的能力 场景。项目可以处理关键事件, 鼠标按下、移动、释放和加倍 点击事件,他们还可以跟踪 鼠标移动。
图形视图使用 BSP(二进制空间 分区)树提供非常 快速的项目发现,因此 其中,它可以可视化大场景 实时,即使有数百万 项目。
【讨论】:
但我不需要支持单个项目的缩放和旋转。这些物品都不是独一无二的。它们都是类似的矩形。大小相同,颜色信息也相同。 您使用的任何绘画表面都会带有很多您可能不会使用的东西。图形框架确实可以让您关闭其中的一些功能,这样您就不必为不需要的东西付费。如果速度不够快,您可能需要使用 OpenGL (doc.trolltech.com/latest/qtopengl.html)。但是图形框架会很多更简单。以上是关于使用 QPainter 在 QWidget 上绘制 QPixmap Rects的主要内容,如果未能解决你的问题,请参考以下文章
在qt creator中用ui设计器创建了一个QDialog的窗口,添加了一个QWidget部件,怎么能在Qwidget上用QPainter