我想用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显示的是整个字符串以及所有大括号、关键字和反斜杠,而不是“这是红色粗体文本”。我做错什么了?
谢谢你的帮助。
您可以使用Qt StyleSheets并设置
QLabel
的styleSheet
属性Qt在其
QWidget
派生类上支持大多数CSS样式。您不需要将文本格式设置为Qt::RichText
即可工作。尝试使用HTML格式:
<b><font... etc </b>
。Qt设计器是这样做的:
<span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>
Qt使用简单的HTML subset进行格式化。
相关问题 更多 >
编程相关推荐