Qt очистка содержимого GraphicsView
Разрабатываю приложение, которое по загруженному текстовому файлу, где находится матрица смежности графа, вырисовывает сам граф. Всё работает, рисуется как задумано, но только когда ты загружаешь файл один раз. Нужно приложение перезапускать. При повторной загрузке файла (этого же или другого) на сцене начинает вырисовываться какая-то дикость. Вот как выглядит всё в первый раз:
При повторной загрузке файла получаем следующее:
Такое ощущение, что содержимое вьюхи растягивается до каких-то невообразимых размеров.
Код, который отвечает за это работу GraphicsView ниже:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
scene = new QGraphicsScene(this);
ui->setupUi(this);
}
void MainWindow::on_pushButton_clicked()
{
scene->clear();
bool isSymmetric = true;
QString file_name = QFileDialog::getOpenFileName(this,"Open a file", QDir::homePath());
QFile file(file_name);
if(file.open(QIODevice::ReadOnly |QIODevice::Text))
{
...
}
file.close();
ui->graphicsView->setScene(scene);
nodes[1] = scene->addEllipse(x[i], y[i], 30, 30, blackPen, whiteBrush);
}
Скажите, пожалуйста, может быть я как-то не так очищаю сцену? Или есть какие-то определенные дополнительные функции для удаления расположенных на ней объектов?
Буду очень благодарен!