Qt学习笔记:使用阿里巴巴的普惠体

环境

系统:Windows10 64位 家庭版
Qt版本:5.9.3 msvc2015 32位
编译器:Visual Studio 2015 专业版

目的

在Qt程序中使用阿里巴巴最新发布的商用字体——普惠体,可以有效地防止字体带来的商业纠纷。

资源链接

阿里巴巴字体
阿里巴巴普惠体下载

步骤

一、获取字体
1.通过上面的资源链接得到阿里巴巴普惠体的压缩包,然后解压,里面还有一个压缩包继续解压,最终得到字体如下图:
Qt学习笔记:使用阿里巴巴的普惠体_第1张图片 二、示例Demo
1.新建一个Qt Widgets Application工程,这里我命名为FontDemo,如下图所示:Qt学习笔记:使用阿里巴巴的普惠体_第2张图片2.把获取到阿里巴巴普惠体字体复制到工程目录下,为了保持良好的文件管理,我新建了一个文件夹叫font,如下图所示:
Qt学习笔记:使用阿里巴巴的普惠体_第3张图片
3.添加一个资源文件,取名为resource,然后添加前缀font,添加font文件夹下的Alibaba-PuHuiTi-Regular字体,如下图:
Qt学习笔记:使用阿里巴巴的普惠体_第4张图片注意:
1.这里我本来把所有的字体类型都添加到资源文件中,但是这样编译不过,提示堆已满,所以我就只添加Alibaba-PuHuiTi-Regular这个字体。
2.把字体添加到资源文件中会增大编译出来的exe的大小。

4.在Widget类中添加2个QLabel用来显示文字,如下图(默认字体):
Qt学习笔记:使用阿里巴巴的普惠体_第5张图片
5.根据字体文件获取字体名称,用来设置字体:
关键代码

QString Widget::getFontNameFromFontfile(const QString &filePath)
{
    QString font = "";

    QFile fontFile(filePath);
    if(!fontFile.open(QIODevice::ReadOnly))
    {
        qDebug() << "Open font file error";
        return font;
    }

    int loadedFontID = QFontDatabase::addApplicationFontFromData(fontFile.readAll());
    QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(loadedFontID);
    if(!loadedFontFamilies.empty())
    {
        font = loadedFontFamilies.at(0);
    }

    fontFile.close();

    return font;
}

效果如下图所示:
Qt学习笔记:使用阿里巴巴的普惠体_第6张图片
示例源码(没有积分的可以给我发邮件)

你可能感兴趣的:(Qt,Qt,字体,阿里巴巴普惠体)