【问题标题】:Embedded Qt GraphicsScene coordinates嵌入式 Qt GraphicsScene 坐标
【发布时间】:2012-06-05 10:17:43
【问题描述】:

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

我希望视图大小与容器的大小相匹配。 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);

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

【问题讨论】:

    标签: qt embedded coordinates qgraphicsscene


    【解决方案1】:

    如果你想在 QGraphicsview 中适应场景

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

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

    也可以试试QGraphicsView::fitInView()

    【讨论】:

    • 这并没有为我解决。视图区域周围仍有空白空间。我尝试了这个,同时为场景设置了一个矩形,并且只为视图设置了它。谢谢你给了我一些东西。
    • 没有骰子,对不起。有谁知道有关此环境中坐标如何工作的综合文章?我已经阅读了 GraphicScene 文档。看起来我需要把它分解成原子来为自己弄清楚。 :(
    • 我将您的答案标记为正确的答案,因为它帮助我解决了我的问题,只是缺少对齐设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2017-10-29
    相关资源
    最近更新 更多