C++ 为什么不';我的QRadioButton没有出现在我的QGroupBox中吗?

C++ 为什么不';我的QRadioButton没有出现在我的QGroupBox中吗?,c++,qt,C++,Qt,这是我的代码,非常简单: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QGroupBox> #include <QRadioButton> #include <QVBoxLayout> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {

这是我的代码,非常简单:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGroupBox>
#include <QRadioButton>
#include <QVBoxLayout>

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

    QGroupBox* genderGroupBox = new QGroupBox("Gender", ui->centralWidget);
    QVBoxLayout* genderGroupBoxLayout = new QVBoxLayout(genderGroupBox);
    QRadioButton* maleRadioButton = new QRadioButton("Male", genderGroupBox);
    QRadioButton* femaleRadioButton = new QRadioButton("Female", genderGroupBox);

    genderGroupBoxLayout->addStretch();
}
并通过以下方式手动添加布局:

genderGroupBox->setLayout(genderGroupBoxLayout);
尽管这两者都不是必需的,因为它们是如何建造的。看起来单选按钮根本没有任何父按钮

有人有什么想法吗

我在mac上使用Qt Creator 3.1.2进行编码。此外,除了具有网格布局的centralWidget外,.ui文件中没有任何内容。

请参阅:

使用布局时,不需要传递父级 构建子窗口小部件。布局将自动重新出租 小部件(使用QWidget::setParent())以便它们是 安装布局的小部件

您的代码应该如下所示:

QGroupBox* genderGroupBox = new QGroupBox("Gender");
QVBoxLayout* genderGroupBoxLayout = new QVBoxLayout;
QRadioButton* maleRadioButton = new QRadioButton("Male");
QRadioButton* femaleRadioButton = new QRadioButton("Female");

genderGroupBoxLayout->addWidget(maleRadioButton);
genderGroupBoxLayout->addWidget(femaleRadioButton);
genderGroupBoxLayout->addStretch();
genderGroupBox->setLayout(genderGroupBoxLayout);

ui->centralWidget->layout()->addWidget(genderGroupBox);

事实上,不需要在堆上分配任何这些。布局和所有小部件都可以是
MainWindow
类的成员。
QGroupBox* genderGroupBox = new QGroupBox("Gender");
QVBoxLayout* genderGroupBoxLayout = new QVBoxLayout;
QRadioButton* maleRadioButton = new QRadioButton("Male");
QRadioButton* femaleRadioButton = new QRadioButton("Female");

genderGroupBoxLayout->addWidget(maleRadioButton);
genderGroupBoxLayout->addWidget(femaleRadioButton);
genderGroupBoxLayout->addStretch();
genderGroupBox->setLayout(genderGroupBoxLayout);

ui->centralWidget->layout()->addWidget(genderGroupBox);