QPlainTextEdit 仅设置一行字体

QPlainTextEdit set font for only one line

本文关键字:一行 字体 设置 QPlainTextEdit      更新时间:2023-10-16

是否可以QPlainTextEdit显示具有不同字体的文本? 我已经尝试过这个,但似乎所有小部件的字体都会改变片刻,并且恢复正常:

QFont font;
font.setBold(true);
ui->plainTextEdit->setFont(font);
ui->plainTextEdit->insertPlainText("Some text:n");
font.setBold(false);
ui->plainTextEdit->setFont(font);

我试图将QPlainTextEdit更改为QTextEdit它没有帮助

QPlainTextEditQTextEdit都继承了QWidgetsetFont,并且QWidget一次只能具有一种字体类型。

但是,QTextEdit公开了一个界面,用于通过QTextCharFormat为文本的不同部分设置字体

在您的情况下,解决此问题的最简单方法应该是使用QTextEditsetCurrentFont方法。

QFont font;
font.setBold(true);
ui->textEdit->setCurrentFont(font);
ui->textEdit->insertPlainText("Some text:n");
font.setBold(false);
ui->textEdit->setCurrentFont(font);

(在这种非常特殊的情况下,您也可以使用setFontWeight来选择粗体/普通字体,但对于更一般的修改setCurrentFont更合适(