在Qt中的QStackedWidget下添加布局

时间:2014-01-13 10:00:39

标签: c++ qt

如何在QStackedWidget下添加不同的布局。我有3个QVBoxLayout,我想在QVBoxLayout下添加此QStackedWidget。我知道布局无法添加内部小部件。但有没有办法做到这一点。因此,从QStackedWidget我可以更改不同的layout

mywindow::mywindow() : QMainWindow()
{   
    centralWidget = new QWidget(this);
    setCentralWidget(centralWidget);
    layout1 = new QVBoxLayout(centralWidget);
    layout2 = new QVBoxLayout();
    layout3 = new QVBoxLayout();

    stack1 = new QStackedWidget();
    list1 = new QListWidget();
    list2 = new QListWidget();
    list3 = new QListWidget();
    label1 = new QLabel("Main Menu");
    label2 = new QLabel();
    label3 = new QLabel("Hello");
    label4 = new QLabel("Hi");
    line1 = new QLineEdit();

    list1->addItem("Item 1");
    list1->addItem("Item 2");
    list1->addItem("Item 100");

    list2->addItem("Item 3");
    list2->addItem("Item 4");

    list3->addItem("Item 5");
    list3->addItem("Item 6");


    layout1->addWidget(label1);
    layout1->addWidget(list1);
    layout1->addWidget(label2);

    layout2->addWidget(label3);
    layout2->addWidget(list2);

    layout3->addWidget(label4);
    layout3->addWidget(list3);

    stack1->addWidget(layout1);
    stack1->addWidget(layout2);
    stack1->addWidget(layout3);

    this->setLayout(layout);

}

1 个答案:

答案 0 :(得分:6)

创建3个QWidget个对象,将每个布局添加到每个窗口小部件,然后将窗口小部件添加到堆叠窗口小部件。