本人技术小白一枚,运用QT也有一段时间,其中遇到很多问题,也通过网上查阅找到很多解决办法,但是感觉因为版本问题导致解决方案很多,但是能解决实际问题的不容易,所以就把我工作中遇到的问题和对应版本进行统计,与大家共勉;希望各位大神多给意见;
QT版本号:qt-opensource-windows-x86-mingw492-5.5.1
1、使用QDir::currentPath()获取的应用app所在的绝对路径,它返回的字符串后面不带“/”,所以当用他获取某个路径的时候,当然后面添加的路径是在APP所在的路径内部文件:
QString fileFullName = QDir::currentPath().append("files/project.xml");//错误 QString fileFullName = QDir::currentPath()+"files/project.xml";//错误
由于在后面加的路径前面没有添加“/”所以会无法获取文件,应该改为下面:
QString fileFullName = QDir::currentPath().append("/files/project.xml");//正确 QString fileFullName = QDir::currentPath()+"/files/project.xml";//正确 QString fileFullName = QDir::currentPath()+"/"+"files/project.xml";//正确
2、"./":表示的是当前应用程序app所在目录的路径,与QDir::currentPath()意思相当;例如:
"./files/project.xml"表示的意思与QDir::currentPath().append("/files/project.xml")相同;
表示的都是当前应用app所在的文件里面files文件中的project.xml文件;
应用程序app所在的目录是途中release文件中,则"./"和QDir::currentPath()表示的就是"E:/2019QT/devtab/build-untitled1-Desktop_Qt_5_5_1_MinGW_32bit-Release";即就是release文件所在的目录;
当文件放到上图助攻files文件下的时候,我们定义需要的文件就可以用一下方案:
QFile file("./files/project.xml"); QFile file( QDir::currentPath()+"/files/project.xml");