QT 文字属性 QFont 字体样式 字体、字号、像素、加粗、字间距、首字母大写等

文字属性对话框

QFont ft;
bool enable = false;//定义bool型输出变量
ft = QFontDialog::getFont(&enable,QFont(QStringLiteral("宋体"),20,QFont::Bold),this,QStringLiteral("自定义文字属性"));
  //调用文字属性设置变量,传输输入变量enable用于保存是否点击了ok按钮,第二个参数为文字属性对话框默认值

设置字间距% / 像素值

//设置字间距像素值
ft.setLetterSpacing(QFont::AbsoluteSpacing,20);             //设置字间距为100像素

ft.setLetterSpacing(QFont::PercentageSpacing,300);        //300%,100为默认
/*
    enum SpacingType {
        PercentageSpacing,
        AbsoluteSpacing
    };
*/

字体/字体大小 等

ft.setFamily(QStringLiteral("宋体"));
//字体:宋体、黑体、Times New Roman、微软雅黑、幼圆、仿宋
//设置字体大小
ft.setPointSize(14);
//字体加粗
ft.setBold(true);
//斜体
ft.setItalic(true);
//上划线
ft.setOverline(true);
//下划线
ft.setUnderline(true);
//删除线(中划线)
ft.setStrikeOut(true);
//字距调整
ft.setKerning(true);
//设置文字粗细//enum Weight 存在5个值
ft.setWeight(QFont::Light);
/*
    enum Weight {
        Light    = 25,
        Normal   = 50,
        DemiBold = 63,
        Bold     = 75,
        Black    = 87
    };
*/

设置字体像素大小

ft.setPixelSize(14);
/*
字体号数与像素对应关系
英文字体的1磅,相当于1/72 英寸,约等于1/2.8mm。 12PT的字打印出来约为4.2mm。网页中12px的字才相当于12像素。

DPI: Dot per inch,在显示器上也就是每英寸包含的像素。英尺的换算为 1 cm = 0.39 inch, 1 inch = 2.54 cm。
DPI 可以通过如下计算得来:
水平 dpi = 水平 resolution * 2.54 / 显示器宽度
垂直 dpi = 垂直 resolution * 2.54 / 显示器高度
pixel pitch(点距): 像素点间距离。可以用25.4mm / DPI得到。
字体在屏幕上的实际大小 = 字体像素大小 * 点距

中文字号VS英文字号(磅)VS像素值的对应关系:
八号=5磅(5pt) ==(5/72)*96=6.67 =6px
七号=5.5磅 ==(5.5/72)*96=7.3 =7px
小六=6.5磅 ==(6.5/72)*96=8.67 =8px
六号=7.5磅 ==(7.5/72)*96=10px
小五=9磅 ==(9/72)*96=12px
五号=10.5磅 ==(10.5/72)*96=14px
小四=12磅 ==(12/72)*96=16px
四号=14磅 ==(14/72)*96=18.67 =18px
小三=15磅 ==(15/72)*96=20px
三号=16磅 ==(16/72)*96=21.3 =21px
小二=18磅 ==(18/72)*96=24px
二号=22磅 ==(22/72)*96=29.3 =29px
小一=24磅 ==(24/72)*96=32px
一号=26磅 ==(26/72)*96=34.67 =34px
小初=36磅 ==(36/72)*96=48px
初号=42磅 ==(42/72)*96=56px
*/

设置首个字母大写

//(跟参数有关,也可以设置全部大写AllUppercase)
font.setCapitalization(QFont::Capitalize);

获取字体的值 QFontMetrics

//通过QFontMetrics获取字体的值
QFontMetrics fm(font);
qDebug() << fm.height();            //获取文字高度
qDebug() << fm.maxWidth();          //获取文字宽度
//通过QFontInfo获取也能获取字体信息
QFontInfo fInfo(font);
qDebug() << fInfo.family() <<"  "<<fInfo.style() << fInfo.pixelSize() << fInfo.overline();

QFont衍生

QFont 为绘画文本提供制定的字体
QFontComboBox 提供了选择字体族的下拉列表框
QFontDatabase 提供了可以在Window 操作系统下能够使用的字体
QFontDialog 用来选择一个指定的字体
QFontEngineInfo 用来描述一个指定的字体引擎插件
QFontEnginePlugin 累提供了字体仓库插件的基础累, 用于嵌入式linux
QFontInfo 包含了一个字体的常规信息
QFontDialog 用来弹出对话框 来获得指定的字体
  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值