【发布时间】:2015-10-22 17:17:53
【问题描述】:
我有一个使用 Qt 4.8 开发的应用程序,为 Embedded Linux Arm 和 Linux Ubuntu 编译。它使用一组特定的字体,我需要安装这些字体才能运行,这就是我对QFontDatabase::addApplicationFont 所做的事情。当我为嵌入式 Linux 编译时一切正常,但是当我为 Linux Ubuntu 编译时,我得到 -1 并且字体没有加载。
我试图在网上找到解决问题的方法,但没有找到任何帮助。通过将 Qt 4.6 更新到 4.7(无用)或安装我已经拥有的 fontconfig 解决了类似的问题。此外,我在 Qt Assistant 中找不到任何有用的东西,并检查了 .ttf 文件的路径。
任何帮助将不胜感激。
这是我正在使用的代码:
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");
【问题讨论】:
-
这个问题可能已经很老了,但我遇到了同样的问题。有什么线索可以解决这个问题吗?