题
我想要写一个单一的,红色粗体我的应用程序使用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的显示整个字符串的所有括号,关键词和反斜杠,而不是“这是红色粗体文字”。我在做什么错了?
感谢您的帮助。
解决方案
尝试使用HTML格式:<b><font... etc </b>
。
Qt设计做这样的:<span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>
其他提示
可以使用 Qt的样式表和设置styleSheet
的QLabel
属性
warning->setStyleSheet("font-weight: bold; color: red");
Qt支持在其QWidget
派生类最CSS样式。你并不需要设置文本格式Qt::RichText
为此工作。
Qt使用一个简单的 HTML子集以格式化。
您也可以做到这一点编程方式使用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);
可以做到这一点在一个单一的线路,以及
不隶属于 StackOverflow