//for starf study
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QFont>
#include<QFontInfo>
//QFont类指定用于绘制文本的字体。
//创建QFont对象时,需要指定希望字体具有的各种属性
//Qt将使用具有指定属性的字体,或者如果不存在匹配的字体,Qt将使用最匹配的已安装字体。
//QFontInfo 提供和 QFont 一样的查询接口
//不同的是,QFont返回设置的属性
//而QFontInfo返回实际显示的属性
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QFont ft1 = QFont();
QFont ft2 = QFont("宋体",14,66,true); //初始化字体对象 设置family 自宽 加粗程度 确定倾斜
qDebug()<< ft2.bold(); //如果weight()的值大于QFont::Medium(57),则返回true;否则返回false。
qDebug()<<ft2.capitalization(); //返回文本的呈现类型 可能的值有:
//QFont::MixedCase 正常的文本呈现选项,不应用大小写更改。
//QFont::AllUppercase 以全大写形式呈现文本。
//QFont::AllLowercase 以全小写形式呈现文本。
//QFont::SmallCaps 以小写字体呈现文本。
//QFont::Capitalize 每个单词的第一个字符都是大写字符。
qDebug()<<ft2.defaultFamily()<<ft2.family(); //获得字体默认的family ; 获得当前字体对象设置的family
qDebug()<<ft2.exactMatch(); //QT会根据构造时的设置选择字体,但是如果字体不存在就会选择最接近设置的字体
//如果能够精确匹配,那么此函数返回true
qDebug()<<ft2.fixedPitch(); //如果fixedPitch被设置,则返回true
qDebug()<<ft2.fromString("宋体字体自定义"); // 自定义该字体对象的family描述
qDebug()<<ft2.toString();//打印该字体的信息 "宋体,14,-1,5,66,1,0,0,0,0"
qDebug()<<ft2.isCopyOf(ft1); // 如果ft1是ft2的副本且前后没有修改过,那么返回true
qDebug()<<ft2.italic(); //如果字体的style()不是QFont::StyleNormal,则返回true
qDebug()<<ft2.kerning(); //如果使用此字体绘制文本时应使用紧排,则返回true。
qDebug()<<ft2.key(); //返回字体的键,即字体的文本表示形式。它通常用作缓存或字体字典的键。
qDebug()<<ft2.lastResortFamily() ; //返回“最后一次使用”字体的family。
qDebug()<<ft2.letterSpacing(); //返回字体的字母间距。
qDebug()<<ft2.letterSpacingType(); //返回用于字母间距的间距类型。
//QFont::PercentageSpacing 值为100将保持间距不变;值为200时,字符后面的间距将扩大字符本身的宽度。
//QFont::AbsoluteSpacing 正值将字母间距增加相应像素;负值会减小间距。
qDebug()<<ft2.overline(); //如果已设置上划线,则返回true;否则返回false。
qDebug()<<ft2.pixelSize(); //如果字体是用setPixelSize()设置的,则返回字体的像素大小。
//如果大小是用setPointSize()或setPointSizeF()设置的,则返回-1。
qDebug()<<ft2.pointSize(); //返回字体的点大小。
//如果字体大小以像素为单位指定,则返回-1。
//qreal QFont::pointSizeF() const 精度更高的重载
QFont ft3 = ft2.resolve(ft2); //返回一个新的QFont, 该QFont具有从其他字体复制的属性
qDebug()<<ft3.toString();
qDebug()<< ft3.styleName(); //获得对象的字体样式
qDebug()<<ft3.stretch(); //获得拉伸系数
qDebug()<<ft3.style(); //获取字体样式
qDebug()<<ft3.underline(); //判断是否设置了下划线
qDebug()<<ft3.weight(); //返回字体字宽
qDebug()<<ft3.wordSpacing(); //获得字体间距
ft3.setBold(true); //设置粗体
ft3.setCapitalization(QFont::Capitalize ); //设置为首字母大写
ft3.setFamily("华文仿宋"); //设置字体簇
ft3.setFixedPitch(true); //设置字体宽度相等
ft3.setItalic(true); //填true设置字体风格为 QFont::StyleItalic 否则设置为 QFont::StyleNormal
//QFont::StyleItalic 专门为表示斜体文本而设计的斜体字形。
// QFont::StyleNormal 正常文本
ft3.setKerning(true); //启用紧密排列
ft3.setLetterSpacing(QFont::AbsoluteSpacing , 40); //设置字母间距
//参数1设置间距样式
//参数2设置间距值
ft3.setOverline(true); //设置启用划线(字体中间)
ft3.setPixelSize(49); //将字体大小设置为像素大小。使用此功能会使字体设备依赖。
ft3.setPointSize(49); //将点大小设置为pointSize。点大小必须大于零。此功能不依赖设备
//void QFont::setPointSizeF(qreal pointSize) 有一个更高精度的重载函数
ft3.setStretch(2); //设置字体的拉伸系数(放大或者缩小)
ft3.setStyle(QFont::StyleItalic); //设置样式,可选有
//QFont::StyleNormal
//QFont::StyleItalic
//QFont::StyleOblique
ft3.setStyleName("ft3style"); //给该对象的样式设置别名
ft3.setUnderline(true); //如果启用为true,则将下划线设置为on;
ft3.setWeight(30);// 设置字宽
ft3.setWordSpacing(10); //将字体的单词间距设置为空格。
}
MainWindow::~MainWindow()
{
delete ui;
}
QFont/QFontInfo方法功能(QT5.12)
于 2022-03-27 19:31:23 首次发布
本文详细介绍了Qt中的QFont类及其相关信息类QFontInfo的使用方法。包括如何创建字体对象、设置字体属性及如何通过QFontInfo获取实际使用的字体属性。

2545

被折叠的 条评论
为什么被折叠?



