• 1676阅读
  • 0回复

[提问]关于QGraphicsScene的刷新问题 [复制链接]

上一主题 下一主题
离线itachiye
 

只看楼主 正序阅读 楼主  发表于: 2020-09-13
小弟在制作一个绘图软件,参考了github上的qdraw(https://github.com/lulu93/qdraw)中的QUndoCommand的写法,可是这个项目本身就是有bug。比如说选中直线的时候,拖久一点并到处乱甩然后再放从而生成一条直线的时候,如果在QUndoCommand点击撤回的时候,item有时会消除不了,虽然通过qdebug可知的确是消除了,可肉眼还是见到这根线还在。请问这种bug怎么解决?解决的思路是什么? 小弟认为是刷新的问题,于是把QUndoCommand的redo和undo里面不写scene的undate(),虽然偶尔不发生这种错误,可是又会引发其他错误。。。

还是人家这部分的代码不合适吗?

    view->setRenderHint(QPainter::Antialiasing);
    view->setCacheMode(QGraphicsView::CacheBackground);
    view->setOptimizationFlags(QGraphicsView::DontSavePainterState);
    view->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
    //view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
    view->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
快速回复
限100 字节
 
上一个 下一个