QLabel 只有一条粗线

Lit*_*nts 1 qt qlabel

假设我有一个QLabel多行文本;这个多行文本来自一个文本文件:我打开文本文件,一次读取一行并将读取的行放入QLabel后跟“\n”(CR)。

当我到达文件末尾时,我会QLabel显示每行所有读取的文本行。在读取阶段,我能够检测读取的行是否包含搜索的单词:在这种情况下,我会将整行放在粗体字符中,而所有其他行仍然不使用粗体字体。

我怎样才能做到这一点?

T3 *_*ica 6

如果您的基本文本不包含 html 代码,您可以将 QLabel 的格式设置为 RichText,使用 label.setTextFormat(Qt::RichText);. 这样,它会将您的文本解释为 html。围绕您要突出显示的线<b></b>- 这应该可以解决问题。

或者setTextFormat(),您可以用 包围整个文本<html></html>。另请参阅mightBeRichText()文档。

尝试通过调用设置文本格式 ui->InfoTextLabel->setTextFormat(Qt::RichText);

您想要加粗的行应该用 包围<b></b>,这样您就可以将它附加到您的文本中,如下所示: append("<b>" + line + "</b>\n")

看看文档