我定义了一个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默认的中心点位置是在 QPointF(0, 0)点, 所以你画的图形基本都是居中~``
可以通过centerOn来设置中心点位置~`
------其他解决方案--------------------
大侠,我还是不明白啊,这个centerOn函数应该怎么用呢?
还有一个问题,我用view->size()想获取这个GraphicsView的大小
但是无论窗口有多大,这个size的值始终不变,这是怎么回事?
------其他解决方案--------------------
1. 当在场景中(scene)要显示的所有图形超出当前可视范围时, graphicsView会自动启用滚动条(scrollbar)用于控制场景的拖拽; 而这个时候centerOn函数也开始起作用, 而它的定位就相当于拖拽滚动条让控制视点位置。
2. view->size()这个你是在哪调用的? 如果是针对QGraphicsView, 它的大小是会随着窗口变化而变, 当然除了你没有进行布局@@
------其他解决方案--------------------
怎么取消这GraphicsView中的滚动条啊
------其他解决方案--------------------
解决了view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
希望能帮助到像我一样菜的人