关于用Qt做.dat文件可视化界面的一些问题

自学qt一个月,最近想做个.dat文件可视化的qt界面,但是再读取.dat文件时界面总是崩溃,找了很多帖子,还没解决,希望有大佬帮我看看

//模型导入
void MainWindow::on_action_6_triggered()
{
    QStringList title;
    QColor color_surface;
    QStringList StrListX,StrListY,StrListE,StrListPID,StrListID,list1,list2,List1;
    StrListX.clear();
    StrListY.clear();
    StrListE.clear();
    StrListPID.clear();                                                  //定义变量
    List.clear();
    FileName_list1.clear();
    foreach(QCustom3DItem  *index,Items)      //首先打开显示模块
     {
        graph3D->releaseCustomItem(index);
        index->deleteLater();
     }
    color_surface=Qt::white;
    Items.clear();
    if(FileName_list1.isEmpty()==0)                      //判断FileName_list1是否包含项
    {
    QImage Image = QImage(2, 2, QImage::Format_RGB32);
     FileName_list1 = QFileDialog::getOpenFileNames(this, tr("请选择模型文件!"),QDir ::currentPath());
     QFileInfo fileInfo=QFileInfo(FileName_list1[0]);//构造一个新的QFileInfo,它是给定fileinfo的副本
    int i=1;
    QString aFileName1 = FileName_list1[0];
    QFile aFile1(aFileName1);                                 //命名一个文本 aFile1
    QTextStream aStream1(&aFile1);                    //将aFile1的内容以流的形式传递

    while(!aStream1.atEnd())
    {
        QString str=aStream1.readLine();//将文件流读取到对象
        if(str.isEmpty())                                 //判断str是否包含项
        {
        }
       else
        {
          str = str.simplified();                  //从头到尾检查str
          list1= str.split(' ', QString::SkipEmptyParts);        //如果有‘ ’,则读取下一组数据
          if(i==2)                                           //判断list1有几组数据
          {
            title.append(list1);
           }
          if(i>2)
            {
              StrListPID.append(list1[0]);
              StrListX.append(list1[1]);
              StrListY.append(list1[2]);
              StrListE.append(list1[3]);
             }
          }
        list1.clear();
        i++;
      }
    aFile1.close();

    for(int j=1;j<=11238;j++)                                     //将StrListX和StrListY循环打印在plainTextEdit
        {
        ui->plainTextEdit->appendPlainText(StrListX[j]);
          ui->plainTextEdit->appendPlainText(StrListY[j]);
         }
      for(int i=0;i<11238;i++)                                    //将StrListX和StrListY字符串转换成数值并赋值给x和y
    {
      x=StrListX[i].toFloat();
      y=StrListY[i].toFloat();
      z=0;
      QCustom3DItem *item= new QCustom3DItem("meshes/sphereSmooth.obj",
                           QVector3D(x, z, y),QVector3D(0.003f, 0.003f,0.003f),QQuaternion::fromAxisAndAngle(0.0f, 0.1f, 0.0f, 45.0f),Image);
      item->setShadowCasting(false);
      Items.append(item);
    }

      foreach(QCustom3DItem  *index,Items)
       {
          graph3D->addCustomItem(index);
       }



        int n,m=0;
        QSurfaceDataArray *dataArray=new QSurfaceDataArray;
        dataArray->reserve(GridNumy);
         for (int i=0;i<GridNumy;i++)                                                                      //将x,y循环描点,显示在界面上
        {
            QSurfaceDataRow *newRow=new QSurfaceDataRow(GridNumx);
            int index=0;
            for (int j=0;j<11238;j++)
            {
              n=m+(j*3);
              x=List[n].toFloat();
              y=List[n+1].toFloat();
              z=0;
              (*newRow)[index].setPosition(QVector3D(x,z,y));
              index++;
            }
            *dataArray<<newRow;
                m+=(GridNumx*3);
        }
    proxy1->resetArray(dataArray);
    series1->setBaseColor(color_surface);
    series1->setColorStyle(Q3DTheme::ColorStyleUniform);
}

}

界面截图
崩溃报错
连续几天没有进展,我去找了一些关于qt读取文件的帖子,试了一些读取文件的程序,也还是不行,然后有考虑是不是死循环了,做了一些修改,也还是没找出问题。
希望有哪位大佬看见,指出我的错误,不胜感激。

没有调试下是出现异常了吗 ?

我这里加载 *..obj 这样的模型文件时, 会出现索引超出边界的异常.

https://stackoverflow.com/questions/44980015/qt-custom3ditem-setmeshfile-not-working-with-wavefront-obj-generated-by-blender?r=SearchResults

可能是QT不能兼容这样的文件格式, 主要是 f 开头的一些行