• 6419阅读
  • 4回复

关于图形视图框架显示图片中的刷新问题。 [复制链接]

上一主题 下一主题
离线chyaini
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-20
为了显示图片,我利用图形视图框架中的view,scene,item三个类,并继承了scene,item这2个类,现在能够显示图片了,但是在拖动一个item(也即图片)时会有拖痕,但是往右下方向拖动不会有拖痕。

  
我想是scene类应该在我拖动item的时候立即刷新,请问该在何处,何时添加刷新函数呢?


我是菜鸟,描述可能不够清楚,请指出,我再补充。


win7+VS2010+Qt4.7+opencv2.2
图像处理
离线sbtree
只看该作者 1楼 发表于: 2011-04-20
这应该是你在Item的paint函数中画的图形超出了boundingRect函数返回的范围导致的
windows 7 + VC++2008 + Qt4.5.2
离线dbzhang800

只看该作者 2楼 发表于: 2011-04-20
QGraphicsScene expects all items boundingRect() and shape() to remain unchanged unless it is notified. If you want to change an item's geometry in any way, you must first call prepareGeometryChange() to allow QGraphicsScene to update its bookkeeping.
离线chyaini

只看该作者 3楼 发表于: 2011-04-21
果然如2楼所说,是我的boundingRect函数返回的rect小了。


同时我也发现即使小了,如果在scene类的mouseMove函数里调用update函数,也能消除拖痕。


感谢二位的指导。
win7+VS2010+Qt4.7+opencv2.2
图像处理
离线xinqingfly

只看该作者 4楼 发表于: 2011-04-21
重载boundingRect()的时候加上线宽的一半
菜鸟也是鸟
快速回复
限100 字节
 
上一个 下一个