当前位置: 代码迷 >> QT开发 >> QGraphicsView 坐标系统,该如何解决
  详细解决方案

QGraphicsView 坐标系统,该如何解决

热度:210   发布时间:2016-04-25 04:23:57.0
QGraphicsView 坐标系统
我定义了一个QGraphicsView 的子类,view,想在其上进行绘图
代码如下:
         QGraphicsScene* scene = new QGraphicsScene;
scene->addText("Hello, Tab2!");
scene->addRect(QRectF(0,0,100,100));
scene->addLine(QLineF(QPoint(0,0),QPoint(100,100))) ;

view->setScene(scene);
QHBoxLayout* layput = new QHBoxLayout;
layput->addWidget(view);
setLayout(layput);
但是我现在绘制出来的无论是text、line还是rect都不是在屏幕的左上角,而是基本在居中的地方,请问这是为什么。。。

------最佳解决方案--------------------
引用:
我定义了一个QGraphicsView   的子类,view,想在其上进行绘图
代码如下:
                          QGraphicsScene*   scene   =   new   QGraphicsScene;
scene-> addText( "Hello,   Tab2! ");
scene-> addRect(QRectF(0,0,100,100)……


因为QGraphicsView默认的中心点位置是在 QPointF(0, 0)点, 所以你画的图形基本都是居中~``
可以通过centerOn来设置中心点位置~`
------其他解决方案--------------------
大侠,我还是不明白啊,这个centerOn函数应该怎么用呢?
还有一个问题,我用view->size()想获取这个GraphicsView的大小
但是无论窗口有多大,这个size的值始终不变,这是怎么回事?
------其他解决方案--------------------
引用:
大侠,我还是不明白啊,这个centerOn函数应该怎么用呢?
还有一个问题,我用view->size()想获取这个GraphicsView的大小
但是无论窗口有多大,这个size的值始终不变,这是怎么回事?


1. 当在场景中(scene)要显示的所有图形超出当前可视范围时, graphicsView会自动启用滚动条(scrollbar)用于控制场景的拖拽; 而这个时候centerOn函数也开始起作用, 而它的定位就相当于拖拽滚动条让控制视点位置。

2. view->size()这个你是在哪调用的? 如果是针对QGraphicsView, 它的大小是会随着窗口变化而变, 当然除了你没有进行布局@@
------其他解决方案--------------------
引用:
引用:大侠,我还是不明白啊,这个centerOn函数应该怎么用呢?
还有一个问题,我用view->size()想获取这个GraphicsView的大小
但是无论窗口有多大,这个size的值始终不变,这是怎么回事?

1. 当在场景中(scene)要显示的所有图形超出当前可视范围时, graphicsView会自动启用滚动条(scrol……

怎么取消这GraphicsView中的滚动条啊
------其他解决方案--------------------
引用:
引用:引用:大侠,我还是不明白啊,这个centerOn函数应该怎么用呢?
还有一个问题,我用view->size()想获取这个GraphicsView的大小
但是无论窗口有多大,这个size的值始终不变,这是怎么回事?

1. 当在场景中(scene)要显示的所有图形超出当前可视范围时, graphi……

解决了view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
       view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
希望能帮助到像我一样菜的人