如何在Qt中创建粗体红色文本标签?

时间:2009-09-23 08:02:14

标签: c++ qt text richtext

我想用Qt在我的应用程序中写一条粗体红线。

据我了解,我会创建一个QLabel,将其textFormat设置为富文本并为其显示一个富文本字符串:

QLabel *warning = new QLabel;
warning->setTextFormat(Qt::RichText);
warning->setText("{\\rtf1\\ansi\\ansicpg1252 {\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;} {\\colortbl;\\red255\\green0\\blue0;} \\f0 \\cf0 this is bold red text}");

我在富文本编辑器中测试了这个富文本字符串,它显示正常。

但Qt显示整个字符串,包括所有大括号,关键字和反斜杠,而不是“这是大胆的红色文本”。我做错了什么?

感谢您的帮助。

4 个答案:

答案 0 :(得分:59)

尝试使用HTML格式:<b><font... etc </b>

Qt Designer是这样的:<span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

答案 1 :(得分:18)

您可以使用Qt StyleSheets并设置styleSheet的{​​{1}}属性

QLabel

Qt支持其warning->setStyleSheet("font-weight: bold; color: red"); 派生类的大多数CSS样式。您无需将文本格式设置为QWidget即可生效。

答案 2 :(得分:13)

Qt使用简单的HTML subset进行格式化。

答案 3 :(得分:3)

您也可以使用settext功能以编程方式执行此操作。像这样:

QString labelText = "<P><b><i><FONT COLOR='#ff0000' FONT SIZE = 4>";
labelText .append(Text what u want to display);
labelText .append("</i></b></P></br>");
QLabel label->setText(labelText);

您也可以在一行中完成。