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

2024-05-13 22:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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显示的是整个字符串以及所有大括号、关键字和反斜杠,而不是“这是红色粗体文本”。我做错什么了?

谢谢你的帮助。


Tags: 字符串文本应用程序newqt我会warningrichtext
3条回答

您可以使用Qt StyleSheets并设置QLabelstyleSheet属性

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

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进行格式化。

相关问题 更多 >