C++ Qgraphicscene有许多小部件

C++ Qgraphicscene有许多小部件,c++,qt,qgraphicsscene,C++,Qt,Qgraphicsscene,我在QGraphicscene中有多个小部件。第一个创建的小部件位于场景顶部,其他小部件位于第一个小部件之下。我想要这样的功能-如果我按下其中一个小部件,它将位于场景顶部。我怎样才能做到? 我也不知道,如何像普通的小部件一样在QGraphicscene中创建小部件的边框。代码如下: QGraphicsScene *scene ; QGraphicsProxyWidget *pw() { QWidget *w = new QWidget; w->resize(580, 280); w-&

我在QGraphicscene中有多个小部件。第一个创建的小部件位于场景顶部,其他小部件位于第一个小部件之下。我想要这样的功能-如果我按下其中一个小部件,它将位于场景顶部。我怎样才能做到? 我也不知道,如何像普通的小部件一样在QGraphicscene中创建小部件的边框。代码如下:

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();
}

如果我按其中一个小部件-确切地说是哪个小部件?小部件w,或p,或p2?小部件w,我希望在从函数pw中选择三个小部件中的一个时,使用QGraphicsItem::setZValue将其置于其他两个widgetsTry之上。另外,请看这里:@mtb感谢您的支持help@abdallahallam你的问题解决了吗?你用了什么?如果我按其中一个小部件-确切地说是哪个小部件?小部件w,或p,或p2?小部件w,我希望在从函数pw中选择三个小部件中的一个时,使用QGraphicsItem::setZValue将其置于其他两个widgetsTry之上。另外,请看这里:@mtb感谢您的支持help@abdallahallam你的问题解决了吗?你用了什么?