私の現在のプロジェクトでは、ユーザーからの寸法を考慮して、実行時に作成するQCheckBoxesの配列があります。ユーザーが[生成]ボタンをクリックするたびに、入力した寸法が集められ、QCheckBoxの配列が作成されます。次のコードで行われます。各要素へのポインタのベクトルを使用してQCheckBoxの配列を削除するにはどうすればよいですか?
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;
私の質問は、どのように私はすべてのQCheckBoxを削除するcheckBoxVectorて行くだろうか?配列の以前の次元は、関数が戻ったときに失われるローカル変数であるため、再呼び出し時に削除する要素の数をどのように知っているでしょうか?
ユーザーが 'Generate'ボタンを2回押すと、QCheckBoxesが重複するため、関数が呼び出されるたびにすべてを消去する必要があります。 (また、誰もがメモリリークを望んでいない!)
ありがとう、これは完全に動作します! –