1

I have more than one widget in QGraphicsScene. The first created widget is on top of scene, other widgets is under first widget. I want such functionality - if i press one of widget it will be on top of the scene. How i can make it? Also i don't know, how to make border to the widget in QGraphicsScene like the normal widget. This is the code:

QGraphicsScene *scene ;

QGraphicsProxyWidget *pw()
{

QWidget *w = new QWidget;
w->resize(580, 280);
w->setStyleSheet("background-color: rgb(110, 149, 255)");


  QPushButton *p = new QPushButton;
    p->setParent(w);
    p->move(30, 50);
    p->setText("hello");

    QPushButton *p2 = new QPushButton;
    p2->setParent(w);
    p2->move(110, 50);
    p2->setText("world");

    QGraphicsWidget *parentWidget = new QGraphicsWidget();

    parentWidget->setMinimumSize(QSizeF(100, 30));
    parentWidget->setFlags(QGraphicsItem::ItemIsMovable);
    parentWidget->setAutoFillBackground(true);
    parentWidget->resize(580, 280);
    scene->addItem(parentWidget);


    QGraphicsProxyWidget *proxyWidget = new QGraphicsProxyWidget;

    proxyWidget->setWidget(w);

    proxyWidget->setParentItem(parentWidget);

    return proxyWidget;
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    scene = new QGraphicsScene;

    scene->setSceneRect(0, 0, 800, 480);
    scene->addItem(pw());
    scene->addItem(pw());
    scene->addItem(pw());

    scene->setBackgroundBrush(Qt::darkGreen);

    QGraphicsView view(scene);

    view.show();

    return a.exec();
}
Kirill Chernikov
  • 1,387
  • 8
  • 21
abdallah allam
  • 73
  • 1
  • 13

0 Answers0