QPlainTextEdit仅设置一行字体

时间:2018-05-18 14:41:48

标签: c++ windows qt qt5

是否可以使用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它没有帮助

1 个答案:

答案 0 :(得分:1)

QPlainTextEditQTextEdit都从setFont继承QWidget,而QWidget一次只有一种字体类型。

但是,QTextEdit exposes an interface通过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更合适)