2009-09-23 131 views
31

我想在我的应用程序中使用Qt编写单一粗体红线。如何在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显示整个字符串与所有大括号,关键字和反斜杠,而不是“这是粗体红色文本”。我究竟做错了什么?

谢谢你的帮助。

回答

52

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

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

+11

您可能需要将QLabel的textFormat属性设置为Qt :: RichText。 – dwj 2013-01-29 23:43:05

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); 

你也可以在一行中完成。

12

您可以使用Qt StyleSheets并设置QLabel

warning->setStyleSheet("font-weight: bold; color: red"); 

styleSheet财产Qt支持其QWidget派生类最CSS样式。您无需将文本格式设置为Qt::RichText即可运行。

+0

非常感谢。这对我有用:) – 2017-02-02 16:17:37

相关问题