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);