LINUX.ORG.RU

QT:: Динамическое размещение кнопок на форме

 


0

2

Всем привет, такой вопрос: получаю информацию из вне о количестве необходимых кнопок, нужно расставить их динамически по сетке, меняя их размер в зависимости от их количества, т.е. если кнопок мало, то - в столбик с максимальным размером, если много то в два столбца.

Сейчас начал делать так: размещаю лейаут, на него закидываю кнопки, после удаления их и последующей перерисовки, новый кнопки начинают добавляться поверх друг друга. Какой есть способ сделать это удобнее?

Ниже методы добавления и удаления


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

Создай свой компоновщик, ссылку тебе выше скинули. Это будет наиболее правильно

XMs ★★★★★
()
Ответ на: комментарий от XMs

как раз что-то наподобие получается

Tumyq
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.