打开文件选择对话框时,需要设置默认的打开路径:
QFileDialog* fd = new QFileDialog(this);
fd->setWindowTitle(tr("选择工件模型..."));
if (part_path.isEmpty())
{
//当前程序运行目录
QDir cur_path(QCoreApplication::applicationDirPath());
//当前目录的上一层
cur_path.cdUp();
//转成字符串
fileName = cur_path.absolutePath();
//添加后续具体路径
fileName = fileName + tr("/parts");
}
else
{
fileName = part_path;
}
fd->setDirectory(fileName); //选取默认路径
QStringList filters;
filters << "STEP files (*.STEP *.stp)"
<< "IGES files (*.IGS *.igs)"
<< "Any files (*)";
fd->setNameFilters(filters);//设置过滤条件
if (fd->exec() == QDialog::Accepted)
{
QString path = fd->selectedFiles()[0];//获取完整路径和文件名称 有后缀
int size = fd->directory().path().size() + 1;//当前路径的长度
relativePath = fd->directory().path();//获得相对路径 最后不带/
int path_size = path.size();//完整路径和文件名称的长度
fileName = path.right(path_size - size);//文件的名称
QString filetype1 = path.right(4);
QString filetype2 = path.right(3);
/*分类型进行数据读取*/
if ("STEP" == filetype1 || "stp" == filetype2) //STEP格式的工件模型
{
pSTEPer->read_STEP_file(path); //OCC读取模型重构
pSTEPer->show_workpiece_face(); //显示工件
}
else //其余格式的模型,主要是IGES
{
read_show_IGES(path);
}
}
delete fd;