QFontDatabase::addApplicationFont在嵌入式Linux中工作,但在Linux Ubuntu中不工作
我有一个应用程序是用Qt4.8开发的,它是为嵌入式Linux Arm和Linux Ubuntu编译的。它使用了一组我需要安装才能运行的特定字体,这是我使用QFontDatabase::addApplicationFont在嵌入式Linux中工作,但在Linux Ubuntu中不工作,linux,qt,ubuntu,fonts,Linux,Qt,Ubuntu,Fonts,我有一个应用程序是用Qt4.8开发的,它是为嵌入式Linux Arm和Linux Ubuntu编译的。它使用了一组我需要安装才能运行的特定字体,这是我使用QFontDatabase::addApplicationFont所做的。当我为嵌入式Linux编译时,一切都很好,但当我为Linux Ubuntu编译时,我得到了-1,字体没有加载 我试图在网上找到解决这个问题的办法,但没有找到任何帮助。类似的问题通过将Qt4.6更新为4.7(没有任何用处)或通过安装我已经安装的fontconfig得到了解决
QFontDatabase::addApplicationFont
所做的。当我为嵌入式Linux编译时,一切都很好,但当我为Linux Ubuntu编译时,我得到了-1,字体没有加载
我试图在网上找到解决这个问题的办法,但没有找到任何帮助。类似的问题通过将Qt4.6更新为4.7(没有任何用处)或通过安装我已经安装的fontconfig
得到了解决。此外,我在Qt助手中找不到任何有用的东西,并检查了.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");
我在Qt(嵌入式)4.8.6上也遇到了同样的问题。要解决字体问题,您需要告诉Qt在为非嵌入式环境构建fontconfig工具时启用对fontconfig工具的支持。信息可在文档()中找到 您需要在系统上安装fontconfig的开发者软件包:
sudo apt-get install libfontconfig1-dev
在从源代码构建Qt之前,您需要在配置步骤中指定以下选项:
-fontconfig
当使用此版本的Qt addApplicationFont构建应用程序时,它工作正常,一切看起来都很好 这个问题可能很老了,但我遇到了同样的问题。有什么线索可以解决这个问题吗?