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