QT中的font类型介绍



QTE(Qt for Embedded)使用FreeType 2字体引擎来支持字体显示。比如TrueType(ttf),Postscript Type(PFA/PFB),Bitmap Distrubution Format fonts(BDF)等。同时QTE自己还支持Qt Prerendered Font(QPF)字体,是一种位图字体,不可缩放,作为QTE的本地字体。

TrueType是由苹果和微软为主开发的矢量字体技术(与之对应的是点阵字体),可以不变形的放大和缩小,文件名一般是*.fon、*.ttf和*.ttc,ttc是ttf的新标准,而fon是以前的老标准。目前有FreeType的字体引擎,作为一个软件库,能够帮助处理TrueType字体的显示。

BDF字体是X窗口系统的位图字体格式,其文件分成两部分,第一部分是描述整体属性的header,第二部分则是每个字型的属性和位图数据。

QPF字体格式仅用于QT/Embedded的不可缩放字体,属于QTE的官方字体,可用工具makeqpf,将ttf文件生成qpf字体文件。

在Qt中直接使用TTF字体或者PFA/PFB这些矢量字体,应用程序会在显示的时候需要将矢量信息计算成点阵形式,会占用大量的计算能力和RAM。如果选用BDF字体,则速度非常慢,而且也需要占用较多资源。QPF是位图字体,不需要再显示时计算点阵,且由于不可缩放,位图直接拿去显示即可,速度和资源占用是最好的。

当QTE应用启动时,会到$QT/lib/fonts目录下去寻找对应的字体文件,包括QBF和TTF字体文件,为兼容期间也会继续读取该目录下的fontdir文件。在代码中使用QFont来应用字体,如果选定字体不存在,QFont有内在的match策略,自动选择默认字体。
Qt 是一个跨平台的 C++ 库,可用于构建 GUI 应用程序、网络应用程序和嵌入式应用程序等。Qt 对于文的处理与其他语言一样,需要注意一些细节。 1. 字符编码 Qt 默认使用 UTF-8 编码字符,因此在使用文时需要确保输入的字符串也是 UTF-8 编码的。如果你从外部文件或接口获取文字符串,则需要将其转换为 UTF-8 编码后再传入 Qt。 2. 字体设置 文需要使用支持文字符集的字体才能正确显示,Qt 提供了多种字体选择,例如宋体、黑体、微软雅黑等。你可以通过 QFont 类来设置字体,例如: ```c++ QFont font("SimSun", 12, QFont::Bold); label->setFont(font); ``` 3. 文本输入框处理 在文本输入框输入文时,需要考虑文输入法的问题。Qt 提供了 QLineEdit 和 QTextEdit 两个类用于文本输入框,它们可以通过设置输入过滤器来限制用户输入的字符类型。例如,可以使用 QRegExpValidator 类来限制用户只能输入汉字、数字和英文字符: ```c++ QRegExp regExp("[\\u4e00-\\u9fa5a-zA-Z0-9]+$"); QRegExpValidator *validator = new QRegExpValidator(regExp, this); lineEdit->setValidator(validator); ``` 4. 文编程 在编写文程序时,需要注意 Qt 的信号槽机制使用的是函数指针,因此文函数名需要转换为英文。例如,如果你想在按钮点击时执行一个名为“保存”的函数,则需要将其重命名为英文函数名。 综上所述,Qt 处理文需要注意字符编码、字体设置、文本输入框处理和文编程等方面。如果你能正确处理这些问题,就可以轻松地开发出支持文的 Qt 应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值