Всем привет, такой вопрос: получаю информацию из вне о количестве необходимых кнопок, нужно расставить их динамически по сетке, меняя их размер в зависимости от их количества, т.е. если кнопок мало, то - в столбик с максимальным размером, если много то в два столбца.
Сейчас начал делать так: размещаю лейаут, на него закидываю кнопки, после удаления их и последующей перерисовки, новый кнопки начинают добавляться поверх друг друга. Какой есть способ сделать это удобнее?
Ниже методы добавления и удаления
void MainWindow::_CreateButtons(int butnumber, QTabWidget *tabWdg)
{
QVBoxLayout *vlayout = new QVBoxLayout(this);
tabWdg->setLayout(vlayout);
for(int i = 0; i < butnumber; i++)
{
QPushButton *btn = new QPushButton(tr("new Button %1").arg(i), tabWdg->currentWidget());
btn->setObjectName(QString::number(i));//имена кнопок
connect(btn, SIGNAL(clicked()), this, SLOT(on_buttons_clicked())); // соединяем с самописным слотом
vlayout->addWidget(btn);
btn->show();
}
}
void MainWindow::_DelDinamicButtons()
{
QLayoutItem *child;
while ((child = ui->tabWidget_nomList->layout()->takeAt(0)) != 0) {
if (child->widget()) {
ui->tabWidget_nomList->layout()->removeWidget(child->widget());
delete child->widget();
}
delete child;
}
}