Qt6.5示例:QPlainTextEdit类setCurrentCharFormat函数使用

1. setCurrentCharFormat()函数说明

QPlainTextEdit提供了一个名为setCurrentCharFormat()的函数,可以用于设置文本编辑器中当前光标位置(包括选中文本)的字符格式。

2. QTextCharFormat属性介绍

QTextCharFormat是Qt框架中的一个类,用于描述文本的格式。它可以设置字体、字号、颜色、粗体、斜体等属性,并可以应用于QTextDocument中的文本内容。

以下是一些常见的QTextCharFormat属性:

  • setFont(const QFont &font):设置字体。
  • setFontPointSize(qreal size):设置字体大小。
  • setFontWeight(int weight):设置字体粗细。
  • setFontItalic(bool italic):设置是否为斜体。
  • setForeground(const QBrush &brush):设置前景色(文本颜色)。
  • setBackground(const QBrush &brush):设置背景色。
  • setUnderlineStyle(UnderlineStyle style):设置下划线风格。
  • setFontStrikeOut(bool strikeOut):设置是否有删除线。

需要注意的是,QTextCharFormat只能用于富文本编辑器,如QTextEdit或QPlainTextEdit,并且在显示时需要支持富文本格式才能正常呈现效果。

3. 例子介绍

在本实例代码中,我们首先创建了一个QPlainTextEdit对象。然后,使用QTextCharFormat对象创建了一个新的字符格式。接下来,我们使用setCurrentCharFormat()函数将字符格式应用到光标所指向的文本上。最后,我们在QPlainTextEdit上添加的文本可以显示更改的字符格式。

本实例最后还添加了一段HTML文本。

4. 示例代码

#include <QApplication>
#include <QPlainTextEdit>
#include <QTextCursor>
#include <QTextCharFormat>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPlainTextEdit textEdit;
    textEdit.setWindowTitle("20YC编程");
    textEdit.resize(380, 280);

    // 创建一个新的字符格式。
    QTextCharFormat charFormat;
    charFormat.setFontFamilies(QStringList() << "Arial");
    charFormat.setFontPointSize(12);
    charFormat.setForeground(QBrush(Qt::red));
    charFormat.setBackground(QBrush(Qt::yellow));
    charFormat.setFontWeight(QFont::Bold);
    charFormat.setUnderlineStyle(QTextCharFormat::UnderlineStyle::SingleUnderline);

    // 将字符格式应用到当前光标所指向的文本上。
    textEdit.setCurrentCharFormat(charFormat);

    textEdit.setPlainText("欢迎关注微信公众号(20YC编程)");

    // 以下演示添加一段HTML文本。
    textEdit.appendHtml("<h1>Hello, 20YC编程社区!</h1>\
<p>这是一段 <b>粗体</b> 和 <i>斜体</i> 文本.</p>\
<p><a href=\"https://www.baidu.com\">这是超链接地址,但在QPlainTextEdit不能点击哦!</a> </p>");

    textEdit.show();
    return app.exec();
}

5. 程序执行效果截图

-【End】-

#想了解更多精彩内容,关注下方公众号,还有示例源码、开发工具免费下载。

喜欢本文章,记得点赞、分享、关注哦~

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天恩软件工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值