I have an app developed with Qt 4.8 compiled for both Embedded Linux Arm as well as Linux Ubuntu. It uses a specific set of fonts which I need to have installed for it to run, something I do with QFontDatabase::addApplicationFont. Everything works fine when I compile for Embedded Linux, but when I do it for Linux Ubuntu, I got -1 and the fonts are not loaded.

I tried to find on the web a solution for the problem but I found no help. Similar problems were solved by updating Qt 4.6 to 4.7 (nothing of use) or by installing fontconfig, which I already have. Also I couldn't find anything useful in Qt Assistant and checked the paths to the .ttf files.

Any help will be appreciated.

Here is the code I'm using:

Qt Code:
  1. QFontDatabase::removeAllApplicationFonts();
  3. QDir fontDir(DEFAULT_FONTS_PATH);
  4. QStringList fontFileList = fontDir.entryList(QStringList("*.ttf"), QDir::Files | QDir::NoDotDot | QDir::NoDot);
  6. mDebugS(QString("Found %1 fonts on folder theme/fonts").arg(fontFileList.size()));
  8. //
  9. qint32 fontId;
  11. foreach (const QString& filename, fontFileList)
  12. {
  13. fontId = QFontDatabase::addApplicationFont(DEFAULT_FONTS_PATH "/" + filename);
  15. if (Q_UNLIKELY(fontId == -1))
  16. {
  17. const QString strTemp = QString("Unable to install font %1").arg(filename);
  19. mLog(strTemp);
  20. mDebugS(strTemp);
  21. }
  22. else
  23. applicationFontsIdList.append(fontId);
  24. }
  26. mDebugS(QString::number(applicationFontsIdList.size()) + " fonts are installed");
To copy to clipboard, switch view to plain text mode 

Note: the same question was put in StackOverflow (link)