• 10601阅读
  • 15回复

如何定位GraphicsView,能让里面的某个GraphicsItem显示在view的左上角 [复制链接]

上一主题 下一主题
离线hope_yh
 

只看楼主 正序阅读 楼主  发表于: 2010-05-28
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
如图:在GraphicsScene中有graphicsItem[10][10],例如现在想让item [1][1]显示在GraphicsView的左上角,如图即标尺对应的2,2。
我用给scrollbar设置value,不起作用,用view的centerOn函数也不起作用。我该怎么办。
离线hope_yh

只看该作者 15楼 发表于: 2010-06-01
问题已找到,我原先将QGraphicsView加载在一个TabWidget上,造成scrollBar有问题,将TabWidget去掉后使用CenterOn就没问题了,谢谢各位
离线hope_yh

只看该作者 14楼 发表于: 2010-06-01
我试过CenterOn,不知为什么不起作用
离线sbtree
只看该作者 13楼 发表于: 2010-05-31
使用centerOn函数:
在View每次改变尺寸的时候resizeEvent,计算Itemitem[1][1]位置加上View左上角到中心的偏差地点的坐标,并利用mapToScene函数转换成scene坐标,之后调用centerOn函数,传入计算出的点作为参数即可
windows 7 + VC++2008 + Qt4.5.2
离线hope_yh

只看该作者 12楼 发表于: 2010-05-31
是这样的.
离线sbtree
只看该作者 11楼 发表于: 2010-05-31
你的问题描述不够清楚,我现在理解的是,你是想把View的左上角定位到Scene中item[1][1]左上角的位置上,不知道是不是这样?
windows 7 + VC++2008 + Qt4.5.2
离线hope_yh

只看该作者 10楼 发表于: 2010-05-31
顶一下,急用
离线hope_yh

只看该作者 9楼 发表于: 2010-05-28
我设了scrollbar(0-100)的范围,在setvalue(10),这样横向scrollbar会移动1/10,item[1][1]就会在view左上角,可惜是设了value为10,scrollbar没有移动1/10,不知怎么回事,是否是Qt本身有问题。
离线hope_yh

只看该作者 8楼 发表于: 2010-05-28
不行,加上这句话后,item[1][1]的原本位置为空白。

我是想通过设置scrollbar的值,将item[1][1]移动到view的左上角,可是scrollbar设上去不起作用。
离线sbtree
只看该作者 7楼 发表于: 2010-05-28
引用第6楼hope_yh于2010-05-28 16:03发表的  :
请详细一些,如何计算左上角的坐标?

QGraphicsScene的坐标,其实就是sceneRect函数返回的矩形的左上角坐标
item[1][1].setPos(sceneRect().topLeft());
windows 7 + VC++2008 + Qt4.5.2
离线hope_yh

只看该作者 6楼 发表于: 2010-05-28
请详细一些,如何计算左上角的坐标?
离线sbtree
只看该作者 5楼 发表于: 2010-05-28
计算出左上角的坐标,然后item [1][1].setPos()
windows 7 + VC++2008 + Qt4.5.2
离线hope_yh

只看该作者 4楼 发表于: 2010-05-28
我用的是GraphicsView,GraphicsScene,每个图片是一个GraphicsItem,我用的不是tableWidget
离线xlttap

只看该作者 3楼 发表于: 2010-05-28
你这是用的QTableWidget吗?如果不是就不能这样写了。
我简单我快乐
离线xlttap

只看该作者 2楼 发表于: 2010-05-28
你把第一行第一列隐藏不就是了。
setRowHidden(int,bool),setColumnHidden(int,bool)
我简单我快乐
离线hope_yh

只看该作者 1楼 发表于: 2010-05-28
如图示
快速回复
限100 字节
 
上一个 下一个