Coding objects in GroupBox in a main layout
-
I'm creating a Dialog for which I have created a main layout. I have added a 2D array of toolbuttons to the Dialog and next need to create a GroupBox that contains a few child widgets. To get the GroupBox to show up on the Dialog, I've had to add it to a SubLayout. But when I try to write code that places child widgets in the GroupBox, they show up outside the GroupBox. I have worked on this all day and have tried several variations suggested by the Qt Documentation examples. . Below is the code that I have written so far, it just attempts to add a QLabel to the GroupBox. Thanks for any help in advance.
@
#include "gamedialog.h"
#include <QtGui>GameDialog::GameDialog(QWidget parent) :QDialog(parent)
{
// Create and configure layouts
QVBoxLayout mainLayout = new QVBoxLayout(this);
QGridLayout* gridLayout = new QGridLayout;
QVBoxLayout* groupBoxLayout = new QVBoxLayout;mainLayout->addLayout(gridLayout); mainLayout->addLayout(groupBoxLayout); mainLayout->addStretch(); // Create grid of toolbuttons and add to layout const int ROWS = 11; const int COLUMNS = 21; for(int i = 0; i < ROWS; i++) for(int j = 0; j < COLUMNS; j++) { toolButton = new QToolButton; gridLayout->addWidget(toolButton, i, j); } groupBox = new QGroupBox("Simulation Configuration"); groupBoxLayout->addWidget(groupBox); numStepsLabel = new QLabel("Number of Steps"); groupBoxLayout->addWidget(numStepsLabel);
}@
-
Well, I'm not sure what you meant, but if you want your gridLayout (containing those toolbuttons) to be inside groupBox, shouldn't you put the gridLayout inside your groupBox? Something like this:
[code]
// Make grid
QGridLayout *gridLayout = ...for(int i = 0; ...) ... gridLayout->addWidget(toolButton, i, j);
// Make groupbox and set layout
groupBox = new QGroupBox;
QVBoxLayout groupBoxLayout = new QVBoxLayout;
groupBox->setLayout(groupBoxLayout);// Add things to groupbox (via layout)
groupBoxLayout->addLayout(gridLayout);
groupBoxLayout->addWidget(new QLabel);
[/code]...And then put groupBox to dialog?
EDIT: I mean, it seems that you add your grid to main layout (line 12), and not in your groupbox's layout.