• 12237阅读
  • 12回复

关于QGraphicsItem的拖动出现影子的问题 [复制链接]

上一主题 下一主题
离线xixu2008
 
只看楼主 倒序阅读 楼主  发表于: 2011-06-30
我是用一个itemGroup将图形组合起来,但是在itemGroup拖动以改变大小的时候,在拖得很慢的情况下没事,但稍微一快,就会重现拖动的影子,本来我觉得是 boungdingRect()的问题,结果我往外扩大了很多,比如rect.adjust(-halfpw,halfpw,halfpw,halfpw),设置halfpw为50其实这已经足够大了),但是还是只是效果好点,就是拖动很快才有重影,但还是并没有完全解决这个问题(另外,单独的item在拖动在拖动设置大小的时候效果很好),请问这是怎么回事?谢谢大侠指教
离线weihua1984

只看该作者 1楼 发表于: 2011-06-30
有源码没?学习一下
离线xinqingfly

只看该作者 2楼 发表于: 2011-07-01
y的偏移量算错了,rect.adjust(-halfpw,halfpw,halfpw,halfpw)第二个参数少了个-号吧
菜鸟也是鸟
离线xixu2008
只看该作者 3楼 发表于: 2011-07-01
回 2楼(xinqingfly) 的帖子
这是手误,源码是正确的
离线xixu2008
只看该作者 4楼 发表于: 2011-07-01
回 1楼(weihua1984) 的帖子
还没完全编好,编好了肯定上源码
离线yzpdsg

只看该作者 5楼 发表于: 2011-07-01
以前上计算机图形学课时老师说过绘制前需要擦除一下就不会有重影了。
离线lclflash

只看该作者 6楼 发表于: 2011-07-03
我觉得还应该是boungdingRect()函数问题,之前我也遇到过类似的问题,楼主可以调试一下看看boungdingRect函数返回值是多少?
离线ming9901
只看该作者 7楼 发表于: 2011-07-25
尝试设置一下QGraphicsView的ViewportUpdateMode,缺省的是QGraphicsView::MinimalViewportUpdate

myGraphicsView->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
离线xdl19880228
只看该作者 8楼 发表于: 2011-08-05
楼主跪求源码啊  现在QGraphicsItemGroup的例子太少了 希望能看下的你程序 学习一下 小弟邮箱745186434@qq.com 在这里先谢谢楼主了
离线hnwdx

只看该作者 9楼 发表于: 2011-08-05
选择框是你自己画的吧,是没有算好边界的问题吧。shape那个函数计算错了点。
离线sbtree
只看该作者 10楼 发表于: 2011-08-09
原因在于itemGroup的boundingRect没有完全包含角上河边上绿色的小方框,导致该擦除的区域不完整。其实这个问题的存在无论是快拖还是慢拖,只要是向图形的内部拖拽,都会留下影子的。解决的办法有两个,一是重新定位8个绿色的小方框,使其完全包含在itemGroup的boundingRect内部,二是继承itemGroup,并重写boundingRect函数
windows 7 + VC++2008 + Qt4.5.2
离线祥龙九霄

只看该作者 11楼 发表于: 2013-05-21
这个是刷新的问题,在mousvMoveEvent中添加this->secne()->update();试试吧。
离线jdwx

只看该作者 12楼 发表于: 2013-05-21
就是boundingRect的问题。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个