QGraphicsView RubberBandDrag 留下工件
Posted
技术标签:
【中文标题】QGraphicsView RubberBandDrag 留下工件【英文标题】:QGraphicsView RubberBandDrag leaves artifacts 【发布时间】:2017-11-13 13:24:32 【问题描述】:我设置了一个 QGraphicsView 和一个 QGraphicsScene,但没有更改任何属性,但是
view->setDragMode(QGraphicsView::RubberBandDrag);
view->setRenderHint(QPainter::Antialiasing, true);
当稍微拖动 arround 时,RubberBandDrag 会留下伪影,并且 RubberBand 本身经常渲染不正确,缺少侧面:
此外,其他图形项(例如常规 QGraphicsRectItem)也会留下这些痕迹。我尝试不使用抗锯齿,但这似乎使情况变得更糟。
我是否必须设置视图/场景的特定属性,例如禁用优化标志?
或者这只是 Qt 的一个错误? (我使用的是 5.9.2) 至少我找不到这方面的报告。
【问题讨论】:
【参考方案1】:我有类似的问题。在我玩了这两个电话之后,事情就解决了。
QGraphicsView.setCacheMode(QGraphicsView::CacheBackground);
QGraphicsView.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
【讨论】:
以上是关于QGraphicsView RubberBandDrag 留下工件的主要内容,如果未能解决你的问题,请参考以下文章
QGraphicsView::NoViewportUpdate 不起作用
QGraphicsView:如何高效获取QGraphicsItems的视口坐标?