В моем текущем проекте у меня есть массив QCheckBoxes, которые я создаю во время выполнения, учитывая размеры от пользователя. Каждый раз, когда пользователь нажимает кнопку «Создать», вводимые им измерения собираются, и создается массив QCheckBoxes. Это делается в следующем коде:
void MainWindow::on_generateBoxes_clicked()
{
int x_dim = ui->xDim->value();
int y_dim = ui->yDim->value();
int z_dim = ui->zDim->value();
for(int i = 0; i < x_dim; ++i){
for(int j = 0; j < y_dim; ++j){
checkBoxVector.append(new QCheckBox( ui->dim1 ));
checkBoxVector.last()->setGeometry(i * 20, j * 20, 20, 20);
}
}
}
checkBoxVector - это глобальный массив указателей, объявленных в другом исходном файле:
QVector<QCheckBox*> checkBoxVector;
Мой вопрос: как мне пройти через checkBoxVector, чтобы удалить все QCheckBox? Поскольку предыдущие измерения массива - это локальные переменные, которые теряются при возврате функции, когда она вызывается повторно, как узнать, сколько элементов нужно удалить?
Если бы пользователь дважды нажал кнопку «Создать», QCheckBoxes пересекались бы друг с другом, поэтому мне нужно стирать их каждый раз при вызове функции. (Также никто не хочет утечки памяти!)