0

解决。我正在使用 C++ 和 Qt 创建一个全屏应用程序。在屏幕中 l 有一个 graphicsScene (和它的一个视图),它取出屏幕的一部分。我不知道如何获得正确的坐标。

我希望视图大小与容器的大小相匹配。l 可以创建一个比容器大的视图,因此有滚动条(最初不需要)但点 (0,0) 位于左上角(我想要这个)或者一个较小但点 (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);

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

4

1 回答 1

0

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

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

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

也试试QGraphicsView::fitInView()

于 2012-06-05T11:57:17.057 回答