Qt 程序使用自带 ttf 字体示例
2017-12-08 17:24
1021 查看
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("中国"));
相关文章推荐
- 修改的不使用库的Qt示例程序——Spectrum Analyzer
- qt使用ttf在2440上字体太小的问题
- 如何让 Qt 的程序使用 Sleep(主线程没有Sleep函数,但线程可用自带的保护函数Sleep)
- Qt自带示例演示程序
- 让程序使用自带的字体文件
- 让程序使用自带的字体2
- 让程序使用自带的字体文件
- 让程序使用自带的字体文件
- 让程序使用自带的字体2
- 使用QT自带工具进行程序打包
- qt使用ttf在2440上字体太小的问题
- 项目有字体特殊要求,而Xcode自带汉字字体不能满足,Xcode如何使用字体文件(下载的ttf)
- QT的的字体使用(全局自带字体特别好用)
- 在ASP.NET AJAX中使用应用程序服务和本地化(2):示例程序:实现用户登录和注销
- 使用VS自带的混淆器防止你的程序被反编译——引进资源
- 使用qmake 单独生成Qt程序
- SAP系统自带的示例程序
- 使用.NET发送E-Mail小程序示例
- 使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序
- 使用myeclipse集成struts,hibernate,spring的一个示例程序(转贴)