【问题标题】:Qt add Widget to GraphicsView?Qt将小部件添加到GraphicsView?
【发布时间】:2012-02-02 09:11:34
【问题描述】:

有没有办法在 QGraphicsView 而不是 QGraphicsScene 上绘制小部件,以便在移动场景时小部件保持在原位?

我想创建一些可停靠在工作区中的对话框,如下所示:

http://www.thebandfrom.com/wp-content/uploads/photoshop-ui.png

【问题讨论】:

    标签: c++ qt user-interface


    【解决方案1】:

    您可以使用QGraphicsSceneaddWidget函数,然后将QGraphicsItem::ItemIgnoresTransformations标志设置为添加的QGraphicsProxyWidget

    QGraphicsProxyWidget* proxyWidget = scene->addWidget(myWidget);
    proxyWidget->setFlag(QGraphicsItem::ItemIgnoresTransformations);
    

    【讨论】:

      【解决方案2】:

      您可以通过将QGraphicsView 设置为其父级来直接将小部件添加到QGraphicsView。您还可以添加一个布局,以便在调整 QGraphicsView 的大小时,您的小部件会适当地排列自己。

      【讨论】: