Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QFontDatabase::addApplicationFont在嵌入式Linux中工作,但在Linux Ubuntu中不工作_Linux_Qt_Ubuntu_Fonts - Fatal编程技术网

QFontDatabase::addApplicationFont在嵌入式Linux中工作,但在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得到了解决

我有一个应用程序是用Qt4.8开发的,它是为嵌入式Linux Arm和Linux Ubuntu编译的。它使用了一组我需要安装才能运行的特定字体,这是我使用
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构建应用程序时,它工作正常,一切看起来都很好

这个问题可能很老了,但我遇到了同样的问题。有什么线索可以解决这个问题吗?