查看完整版本: [-- 关于QGraphicsScene的刷新问题 --]

QTCN开发网 -> 其它技术开发讨论区 -> 关于QGraphicsScene的刷新问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

itachiye 2020-09-13 18:18

关于QGraphicsScene的刷新问题

小弟在制作一个绘图软件,参考了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);


查看完整版本: [-- 关于QGraphicsScene的刷新问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled