其他分享
首页 > 其他分享> > Qt 之层叠QWidget,使用QStackedLayout

Qt 之层叠QWidget,使用QStackedLayout

作者:互联网

 //底层widget
    QWidget* wd1 = new QWidget();
    QHBoxLayout* hbox = new QHBoxLayout(wd1);
    QWidget* wd1Left = new QWidget();
    wd1Left->setStyleSheet("background-color: rgb(0, 200, 0);");
    QWidget* wd1Right = new QWidget();
    wd1Right->setStyleSheet("background-color: rgb(0, 0, 10);");
    hbox->addWidget(wd1Left);
    hbox->addWidget(wd1Right);
    wd1->setLayout(hbox);

    //顶层widget
    QWidget* wd2 = new QWidget();
    QHBoxLayout* hbox2 = new QHBoxLayout(wd2);
    QWidget* wd2Left = new QWidget();
    wd2Left->setStyleSheet("background-color: rgb(10, 50, 20,0);");
    QWidget* wd2Center = new QWidget();
    wd2Center->setStyleSheet("background-color: rgb(200, 0, 0, 80);");
    QWidget* wd2Right = new QWidget();
    wd2Right->setStyleSheet("background-color: rgb(60, 128, 10,0);");
    hbox2->addWidget(wd2Left);
    hbox2->addWidget(wd2Center);
    hbox2->addWidget(wd2Right);
    wd2->setLayout(hbox2);

    //
    QStackedLayout * sBoxLayout = new QStackedLayout();
    sBoxLayout->setStackingMode(QStackedLayout::StackAll);
    sBoxLayout->addWidget(wd1);
    sBoxLayout->addWidget(wd2);
    wd1->stackUnder(wd2);

    //
    QVBoxLayout* layoutMain = new QVBoxLayout();
    layoutMain->addLayout(sBoxLayout);

    this->centralWidget()->setLayout(layoutMain);

在这里插入图片描述

标签:Qt,hbox2,color,addWidget,wd2,QWidget,QStackedLayout,new
来源: https://blog.csdn.net/mobing99/article/details/121118967