Qt笔记03【QTextCharFormat 字体格式类】

一、类的作用

QTextCharFormat:用来存储 字体,字号,加粗,倾斜,下划线,颜色等属性的类 ,它通常用于 QTextDocument 或 QTextCursor 中,以设置或修改文本的格式。如设置文本的字符格式,如字体、颜色、对齐方式、段落样式等。 

二、属性及函数

头文件:#include <QTextCharFormat> 
继承自:QTextFormat
继承人:QTextImageFormat 和 QTextTableCellFormat

QTextCharFormat()     //构造函数
QString QTextCharFormat::anchorHref() const //返回文本格式的超链接
QStringList QTextCharFormat::anchorNames() const //返回锚点名称

QFont QTextCharFormat::font() const //返回此字符格式的字体
setFont(const QFont &font)    //字体。
setFontFamily(const QString &family)    //字体家族。
setFontSize(int size)// 字体大小。
setFontWeight(int weight)//字体粗细。
setFontItalic(bool italic)//字体是否倾斜。
setFontUnderline(bool underline)//字体是否带下划线。
setFontStrikeOut(bool strikeOut)//字体是否带删除线。
setForeground(const QBrush &brush)//前景色(文本颜色)。
setBackground(const QBrush &brush)//背景色。
setTextOutline(const QPen &pen)//文本描边样式。
setTextUnderlineColor(const QColor &color)//下划线颜色。
setTextVerticalAlignment(Qt::Alignment alignment)//文本垂直对齐方式。

setAnchor(bool anchor)//是否为锚点。
setAnchorHref(const QString &href)//锚点链接。
setAnchorNames(const QStringList &names)//锚点名称。
setToolTip(const QString &toolTip)//工具提示。
setFontCapitalization(QFont::Capitalization caps)//字母大小写。
setFontLetterSpacing(qreal spacing)//字母间距。
setFontWordSpacing(qreal spacing)//单词间距。

三、类的使用

将类的属性作用到所选中的文字,m_edit 是 QTextEdit的类对象。

//字体是否倾斜的槽函数
void EditorWindow::on_m_actItalic_triggered(bool checked)
{
    QTextCharFormat fmt; // 新建一个对象,存储字符格式信息
    fmt.setFontItalic(checked); //保存字体是否倾斜的属性
    ui->m_edit->mergeCurrentCharFormat(fmt);// 将fmt类的属性作用于当前选中的文字
}

/*------------三目运算符用法OK-----------------*/
// checked : 真,粗体; 假,普通
void EditorWindow::on_m_actBold_triggered(bool checked)
{
    QTextCharFormat fmt; // 存储字符格式信息
    fmt.setFontWeight(checked ? QFont::Bold : QFont::Normal);
    // 将设置到的fmt作用于当前选中的文字
    ui->m_edit->mergeCurrentCharFormat(fmt);
}

四、与Qfont区别 

 注意这个比Qfont字体类范围要大,可以存储Qfont;包含Qfont。

    QTextEdit textEdit;//创建一个文本编辑框
    QTextCursor cursor = textEdit.textCursor(); //获取文本编辑框中选中的内容

    // 创建一个字体对象
    QFont font("Arial", 12, QFont::Bold, true);
    
    // 创建一个字符格式对象
    QTextCharFormat format;
    format.setFont(font); //将字体赋值到QTexCharFormat对象
    format.setForeground(Qt::red);
    format.setBackground(Qt::yellow);
    format.setAlignment(Qt::AlignCenter);

    // 将格式应用到光标所在的文本
    cursor.setCharFormat(format);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值