QFontDatabase :: addApplicationFont在embedded式Linux中工作,但不在Linux Ubuntu中工作

我有一个用Qt 4.8开发的应用程序,既适用于Embedded Linux Arm也适用于Linux Ubuntu。 它使用一组特定的字体,我需要为它运行,我用QFontDatabase::addApplicationFont做。 一切工作正常,当我编译的embedded式Linux,但是当我这样做的Linux Ubuntu,我得到-1,字体不加载。

我试图在网上find这个问题的解决scheme,但我没有find任何帮助。 通过更新Qt 4.6到4.7(没有任何用处)或者通过安装我已经有的fontconfig来解决类似的问题。 另外我在Qt Assistant中找不到任何有用的东西,并检查了.ttf文件的path。

任何帮助将不胜感激。

这是我正在使用的代码:

 QFontDatabase::removeAllApplicationFonts(); QDir fontDir(DEFAULT_FONTS_PATH); QStringList fontFileList = fontDir.entryList(QStringList("*.ttf"), QDir::Files | QDir::NoDotDot | QDir::NoDot); mDebugS(QString("Found %1 fonts on folder theme/fonts").arg(fontFileList.size())); // qint32 fontId; foreach (const QString& filename, fontFileList) { fontId = QFontDatabase::addApplicationFont(DEFAULT_FONTS_PATH "/" + filename); if (Q_UNLIKELY(fontId == -1)) { const QString strTemp = QString("Unable to install font %1").arg(filename); mLog(strTemp); mDebugS(strTemp); } else applicationFontsIdList.append(fontId); } mDebugS(QString::number(applicationFontsIdList.size()) + " fonts are installed");