Qt 程序使用自带 ttf 字体示例

TTF简介

  TTF(TrueTypeFont)是 Apple 公司和 Microsoft 公司共同推出的字体文件格式,随着二十多年来 windows 的流行,目前 TTF 已经变成最常用的一种字体文件表示方式。truetype 字体的最大优点是可以很方便地把字体轮廓转换成曲线,可以对曲线进行填充,制成各种颜色和效果,它可以进一步变形,制作特殊效果字体,因此经常用来制作一些标题字或花样字。
  桌面出版系统使用的字库有两种标准: postscript字库和truetype字库。这两种字体标准都是采用曲线方式描述字体轮廓,因此都可以输出很高质量的字形。truetype 字体也用来作为 postscript 字库的显示字用,各字库公司同时都有这两种标准的产品。因此当使用 truetype 字体制作版面时,输出时仍然可以将它代换成 postscript 字库输出。

Qt示例

  因为我在嵌入式 Linux 平台开发一个界面程序,需要显示中文字体,所以下载了 LiHeiPro.ttf 来使用。那么下面我们来看一下在 Qt 中应该如何操作。
  (TTF 字库路径为 /home/root/seat_imx/LiHeiPro.ttf)
  代码如下:

#include "gytboxwidget.h"
#include <QApplication>
#include <QTextCodec>
#include <QFontDatabase>
#include <QFont>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

    int index = QFontDatabase::addApplicationFont("/home/root/seat_imx/LiHeiPro.ttf");
    if(index != -1) {
        QStringList fontList(QFontDatabase::applicationFontFamilies(index));

        /* font -- LiHei Pro */
        if(fontList.count() > 0) {
            QFont font_zh(fontList.at(0));
            font_zh.setBold(false);
            a.setFont(font_zh);
        }
    }

    GytBoxWidget w;
    w.show();

    return a.exec();
}

  之后就可以显示中文了,比如:

QLabel *label = new QLabel(this);
label->setText(tr("中国"));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿基米东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值