[英]How to draw a Rectangle in Qgraphicsview dynamically (runtime), using Qt4
[英]Qt4: “subview” using QGraphicsView
使用QGraphicsView / QGraphicsScene / QGraphicsItem,我需要创建另一个QGraphicsItem的多个视图。
换句话说,在QGraphicsScene中,我需要创建多个QGraphicItems,这些QGraphicItems显示存储在屏幕外某个地方的其他QGraphicsItem的一部分。 这有点像模型/视图框架,其中一个QGraphicsItem的行为类似于模型,而其他QGraphicsItems的行为类似于视图-显示(剪切)另一项的一部分。 (见附图)
我怎样才能做到这一点? 请注意,“视图”不应为只读。 每个视图应对鼠标移动,键盘输入做出反应,并且当模型中的某些项目发生更改时应正确重绘自身。
最愚蠢的方法是将隐藏的项目绘制到QImage上,然后在其他项目中显示该QImage的部分。 但是,这将浪费大量内存。 还有其他方法吗?
Qt 4.8,VC2008 Express,Windows平台。
- 编辑 -
我需要显示场景内的场景(或屏幕外的QGraphicsItem)的部分。 这有点像3D游戏中的门户。
经过研究,我发现(据我所知)Qt尚无(已记录)这种情况的方法。
所以我决定写一些我自己的方法
这实际上可能有点棘手,因为我需要处理裁剪(按形状裁剪子项的项目)并重画QGraphicsWidget之类的复杂组件,但据我所知可以完成。 同样,这样做,我将失去QGraphicsView提供的BSP优化,但是对于我的特殊情况,这应该是可以接受的折衷方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.