Qt - 如何将多个QGroupBox添加到QTabWidget?

时间:2017-01-07 10:53:51

标签: c++ qt qt-creator qt5.5 qtabwidget

我将在每个标签内创建多个标签框,如下所示。

_______ ______
| | |
| Tab1 | TAB2 |
| | ______ | _________________
|
|组框1 | ------------------------------------
|
|
|组框2
| ------------------------------------

如何使用 QTabWidget QGroupBox 执行此操作?

修改

我在标签窗口小部件中用于一个组框的代码是:

QGroupbox * testGB = new QGroupbox("Group Box 1");
...
// create a test layout and add some widget to it
...
testGB.setLayout(testLayout);

QTabWidget * tab = new QTabWidget this;
tab->addTab(testGB, tr("Tab1"));  

但我不知道如何将另一个组框添加到 Tab1

1 个答案:

答案 0 :(得分:1)

也许这里有一些对你有用的东西。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QVBoxLayout* lay=new QVBoxLayout;
    ui->centralWidget->setLayout(lay);
    QTabWidget* tab = new QTabWidget(this);
    lay->addWidget(tab);

    QWidget* w1=new QWidget(this);
    QVBoxLayout* lay1=new QVBoxLayout;
    lay1->setSizeConstraint(QLayout::SetMaximumSize);
    w1->setLayout(lay1);
    tab->addTab(w1,"tab1");
    QGroupBox* gb1=new QGroupBox("Group 1-1");
    gb1->setMaximumSize(250,100);
    gb1->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Preferred);
    lay1->addWidget(gb1);
    QGroupBox* gb2=new QGroupBox("Group 1-2");
    gb2->setMaximumSize(250,100);
    gb2->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Preferred);
    lay1->addWidget(gb2);

    QWidget* w2=new QWidget(this);
    QVBoxLayout* lay2=new QVBoxLayout;
    lay2->setSizeConstraint(QLayout::SetMaximumSize);
    w2->setLayout(lay2);
    tab->addTab(w2,"tab2");
    QGroupBox* gb3=new QGroupBox("Group 2-1");
    gb3->setMaximumSize(250,100);
    gb3->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);
    lay2->addWidget(gb3);
    QGroupBox* gb4=new QGroupBox("Group 2-2");
    gb4->setMaximumSize(250,100);
    gb4->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);
    lay2->addWidget(gb4);
}

enter image description here