QPlainTextEdit 只为一行设置字体
Posted
技术标签:
【中文标题】QPlainTextEdit 只为一行设置字体【英文标题】:QPlainTextEdit set font for only one line 【发布时间】:2018-05-18 14:41:48 【问题描述】: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】:QPlainTextEdit
和QTextEdit
都从QWidget
继承setFont
,并且QWidget
一次只有一种字体类型。
但是,QTextEdit
exposes an interface 可以通过QTextCharFormat
为文本的不同部分设置字体
就您而言,解决此问题的最简单方法应该是使用QTextEdit
和setCurrentFont
方法。
QFont font;
font.setBold(true);
ui->textEdit->setCurrentFont(font);
ui->textEdit->insertPlainText("Some text:\n");
font.setBold(false);
ui->textEdit->setCurrentFont(font);
(在这种非常特殊的情况下,您还可以使用setFontWeight
来选择粗体/普通字体,但对于更一般的修改setCurrentFont
更合适)
【讨论】:
以上是关于QPlainTextEdit 只为一行设置字体的主要内容,如果未能解决你的问题,请参考以下文章
如何在 QPlainTextEdit 小部件中突出显示整行文本?