Имеем Qt4.8.6 под линуксом. Запускаем такой код
QString str;
str = "/tmp/myfolder/myfile.txt";
qDebug() << QFileInfo(str).fileName();
str = "tmp\\myfolder\\myfile.txt";
qDebug() << QFileInfo(str).fileName();
"myfile.txt"
"tmp\myfolder\myfile.txt"
Т.е. виндовые пути обработаны неверно. Запускаем то же самое под виндой, все работает нормально.
"myfile.txt"
"myfile.txt"
Почему так происходит, и как еще можно получить имя файла без пути до него независимо от типа пути и платформы, где это все работает? В голову приходит только регулярка.