【问题标题】:Qt - How to add multiple QGroupBox to a QTabWidget?Qt - 如何将多个 QGroupBox 添加到 QTabWidget?
【发布时间】:2017-01-07 10:53:50
【问题描述】:

我将在每个选项卡内创建多个带有多个组框的选项卡,如下所示。

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

如何使用 QTabWidgetQGroupBox 做到这一点?

编辑

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

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

【问题讨论】:

  • Somethig like this 你想要吗?这是QToolBox documentation。如果没有,请提供更多信息。
  • 感谢您的回复。不,正如我在问题中显示的那样,我想用 QTabWidget 创建一个选项卡并将两个组框(QGroupbox)附加到它的内容。

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


【解决方案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);
}

【讨论】:

  • 我从您的代码中获得了一些想法并解决了我的问题。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2017-09-25
  • 2016-10-05
  • 2020-05-13
  • 2017-10-02
相关资源
最近更新 更多