• 5209阅读
  • 3回复

跪求QMatrix类的translate()和QGraphicsItem的moveBy()的问题 [复制链接]

上一主题 下一主题
离线zsw8766
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-17

使用QGraphicsScene的addPixmap()方法加载一个图片后,向上滚动滑轮,放大图片(已实现),超过graphicsView大小尺寸时,我想通过点击QpushButton,实现图片平移,槽函数里先后使用过三种方法:
1、QMatrix m=graphicsView->matrix();
m->translate(100,0);
graphicsView->setMatrix(m);
graphicsView->update();
2、QList<QGraphicsItem *> litem =Graphicsscene->items();
QGraphicsItem *QGPitem=litem.at(0); //仅加载一张图片,只对一张图片操作可取0
QMatrix m=QGPitem->matrix();
m->translate(100,0);
QGPitem->setMatrix(m);
Graphicsscene->update();
3 QList<QGraphicsItem *> litem =Graphicsscene->items();
QGraphicsItem *QGPitem=litem.at(0);
QGPitem->MoveBy(100,0);
Graphicsscene->update();
上述三种方法,都未实现效果,方法1图片基本上没变化,方法2和方法3只是在图片的左侧加了100长度的空白区
请教 如何实现图片item平移呢(当图片大于view时)?
离线numen

只看该作者 1楼 发表于: 2010-04-17
感觉你应该用graphicsview的滚动条来操作,而不是改变grahpics的坐标系啊
欢迎访问我的blog:
http://www.cnblogs.com/baizx
离线zsw8766

只看该作者 2楼 发表于: 2010-04-18
我最后是用滚动条实现的,但我不想那么做,MoveBy和translate能实现吗?这两函数是不是有bug
离线ripley2010
只看该作者 3楼 发表于: 2011-02-28
控制滚动条最简单可靠。。。。。。。。。。。。。。。。
快速回复
限100 字节
 
上一个 下一个