Qt – Как добавить несколько QGroupBox в QTabWidget?

Я собираюсь создать несколько вкладок с несколькими групповыми полями внутри каждой вкладки, как показано ниже.

_______ ______
| | |
| Вкладка1 | Вкладка2 |
| |______|_________________
|
| Групповой ящик 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.


person Ghasem Pahlavan    schedule 07.01.2017    source источник
comment
Хотите что-нибудь подобное этому? Вот документация по QToolBox. Если нет, предоставьте дополнительную информацию.   -  person Mara Black    schedule 07.01.2017
comment
Спасибо за ответ. нет, как я показал в вопросе, я хочу создать вкладку с QTabWidget и добавить к ее содержимому два групповых поля (QGroupbox).   -  person Ghasem Pahlavan    schedule 07.01.2017


Ответы (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);
}

введите здесь описание изображения

person Community    schedule 07.01.2017
comment
Я почерпнул некоторые идеи из вашего кода и решил свою проблему. Большое спасибо. - person Ghasem Pahlavan; 07.01.2017