4.7.4中的新功能:QDir :: homePath()给出空字符串

时间:2011-09-06 20:13:35

标签: qt

QString path = QDir::homePath();  // <-- "path" is always ""

这是4.7.4中的新错误吗?用于在4.7.3中正常工作

我在OSX Lion(4.7.3在Lion上工作)。

2 个答案:

答案 0 :(得分:0)

嗯,如果我不使用“清除系统环境”,问题就解决了。我取消选中它,然后重新构建,它工作正常。它可能是“壳”的定义吗?我想不出除此之外与此有关的任何事情。我想有些东西导致Qt定义了 QT_NO_FSFILEENGINE ,因此返回一个空字符串:

// from Qt source file: QDir.cpp

QString QDirPrivate()
{
#ifdef QT_NO_FSFILEENGINE
    return QString();
#else
    return cleanPath(QFSFileEngine::homePath());
#endif
}

答案 1 :(得分:0)

“清除系统环境”可能也清除了HOME环境变量。

基本上,QDir::homePath()几乎未选中QFile::decodeName(QByteArray(::getenv("HOME")))。如果没有HOME变量,那就是一个空字符串。