Имеется такой код. Создается массив фреймов и массив QLineEdit. Я добавляю QLineEdit во фрейм с помощью setParent. Выводиться не так как надо. Надо чтобы QLineEdit был в центре фрейма.
А как это сделать?
frame = new QFrame[22];
for ( int i = 0; i < 22; i++ ) {
frame[i].setParent(this);
frame[i].setFrameStyle(QFrame::Box | QFrame::Sunken);
frame[i].setLineWidth(4);
}
line = new QLineEdit[22];
for ( int i = 0; i < 22; i++ ) {
line[i].setParent(&frame[i]);
line[i].setFixedWidth(20);
}
Создаём на интерфейсе пустой QWidget с именем wgt нужного размера, где будут размещаться наши фреймы.
QGridLayout* glo = new QGridLayout(ui->wgt); //сетчатая компоновка
glo->setSpacing(3); //отступы между фреймами
for(auto i = 0 ; i<10 ; ++i) {
for(auto j = 0 ; j<10 ; ++j) {
QFrame* frame = new QFrame(ui->wgt); //фрейм
frame->setFrameStyle(QFrame::Box | QFrame::Sunken);
QLineEdit* le = new QLineEdit(frame); //лайнедит
QHBoxLayout* lo = new QHBoxLayout(frame); //компоновка по горизонтали,
lo->setSpacing(0);
lo->setMargin(0);
lo->addWidget(le); //в которую помещаем виджет le
frame->setLayout(lo); //компоновку устанавливаем на фрейм
glo->addWidget(frame, i, j); //который добавляем в сетчатую компоновку
}
}
//устанавливаем сетчатую компоновку на наш пустой виджет
ui->wgt->setLayout(glo);
Продвижение своими сайтами как стратегия роста и независимости