经常在VS和QtCreator这两个开发环境之间切换的同志肯定会发现这两个开发环境生成的可执行程序的文件路径不一样,VS是在项目文件目录里面,而qt creator是在和项目文件夹同一目录下。如下图所示:
QtCreator:
VS:
这就导致了一个问题,若要获取项目中某个文件的路径时,想采用相对于可执行程序的路径,但是使用不同的方式打开项目可能导致可执行程序的路径不同,所以编写代码时不能将路径写死,这时候__FILE__就该登场了。。。
在 Qt 中,__FILE__
是一个宏,它会展开为当前源文件的名称,作为字符串字面量。这在调试和日志记录时非常有用,因为它允许你确定代码执行的确切文件和位置。
代码示例:
QFileInfo fileInfo(__FILE__);
QString path = fileInfo.absolutePath();
QDir dir(path + "/../shopstore/advertise");
if(!dir.exists()){
qWarning()<<"广告图加载失败";
return;
}
//qDebug()<<" path : "<<dir.absolutePath();
QStringList pixs = dir.entryList(QStringList()<<"*.jpg"<<"*.png");
//qDebug()<<"size : "<<pixs.size();