QTextEdit设置当前行的文本的颜色和字体

思路

设置当前行文本的格式 需要使用到QTextCharFormat类,设置它的文本颜色或者文本字体,然后并获取 当前文本的光标,从光标开始位置设置文本的字符格式。

代码

1、设置文本当前行的颜色

void MainWindow::setInsertTextColor(const QColor &color)

{
    QTextCharFormat fmt;//文本字符格式
    fmt.setForeground(color);// 前景色(即字体色)设为color色
    QTextCursor cursor = ui->infoTextEdit->textCursor();//获取文本光标
    cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示
    ui->infoTextEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式
}

2、设置文本当前行的字体

 

void MainWindow::setInsertTextFont(const QFont &font)
{
    QTextCharFormat fmt;//文本字符格式
    fmt.setFont(font);//字体
    QTextCursor cursor = ui->m_textdisplay->textCursor();//获取文本光标
    cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示
    ui->m_textdisplay->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式
}

3、使用总结

//设置时间颜色与字体
    setInsertTextFont(timeFont);
    setInsertTextColor(timeColor);
    ui->infoText->append(curTime.toString());

4.设置某一部分字体颜色改变

 QTextCharFormat fmt;//文本字符格式
        fmt.setForeground(QColor("red"));// 前景色(即字体色)设为color色

        QString  str1 = ui->textEdit->toPlainText();
        QTextCursor cursor = ui->textEdit->textCursor();//获取文本光标
        ui->textEdit->setFocus();
        cursor.setPosition(0,QTextCursor::MoveAnchor);
        cursor.setPosition(5,QTextCursor::KeepAnchor);
        cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示
        ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式

QTextCharFormat fmt;//文本字符格式
        fmt.setForeground(QColor("red"));// 前景色(即字体色)设为color色

        QString  str1 = ui->textEdit->toPlainText();
        QTextCursor cursor = ui->textEdit->textCursor();//获取文本光标
        ui->textEdit->setFocus();
        cursor.setPosition(0,QTextCursor::MoveAnchor);
        cursor.setPosition(2,QTextCursor::KeepAnchor);
        cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示
        ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式
        cursor.setPosition(6,QTextCursor::MoveAnchor);
        cursor.setPosition(8,QTextCursor::KeepAnchor);
        cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示
        ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式

 

5.选中某一段文本

//此时光标所在的位置

QTextCursor cursor = ui->textEdit->textCursor();

//选中从start到end的这一段文本

int start = cursor.position();

int end = cursor.position()+5; 

cursor.setPosition(start,QTextCursor::MoveAnchor);

cursor.setPosition(end,QTextCursor::KeepAnchor);

ui->textEdit->setTextCursor(cursor);

 

  • 12
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fyzy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值