嵌入式Qt QGraphicsScene坐标

时间:2012-06-05 10:17:43

标签: qt embedded coordinates qgraphicsscene

已解决。我正在使用C ++和Qt创建一个全屏应用。在屏幕上,我有一个graphicsScene(以及一个View for it),可以取出屏幕的一部分。 l无法弄清楚如何正确获得坐标。

我希望视图大小与容器的大小相匹配。我可以创建一个大于容器的视图,因此有滚动条(最初不想要),但点(0,0)位于左上角( l想要这个)或者视图较小但点(0,0)不再位于左上角,有“边距”。我希望(0,0)点在左上角,这样我就可以通过编程方式绘制网格。

scene = new NoteMatrix(LayoutB2);
view = new QGraphicsView(scene);
scene->setSceneRect(0,0,view->frameSize().width(), view->frameSize().height());
view->fitInView(view->sceneRect());
view->setAlignment(Qt::AlignLeft);
scene->addRect(0, 0, scene->width(), scene->height()); //visualize boundaries
QWidget *widget = new QWidget(parent);
widget->setLayout(LayoutB2);
mainLayout->setStretchFactor(widget, 1);
setCentralWidget(widget);

我解决了我最初的问题。坐标没有错。在这种情况下,我需要将对齐设置为我想要的任何一方。

1 个答案:

答案 0 :(得分:0)

如果你想在QGraphicsview中适合一个场景

view->setScene(YourScene);
view->setSceneRect(0,0,view->frameSize().width(),view->frameSize().height());

用于设置场景矩形。如果设置宽度和高度小于或等于视图的矩形,则不会显示滚动条。

另请尝试QGraphicsView::fitInView()