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

发布于 2024-08-05 02:08:17 字数 477 浏览 12 评论 0 原文

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

感谢您的帮助。

I want to write a single, bold red line in my application using Qt.

As far as I understand, I would create a QLabel, set its textFormat to rich text and give it a rich text string to display:

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

I tested this rich text string in a rich text editor and it displays fine.

But Qt displays the whole string with all braces, keywords and backslashes instead of "this is bold red text". What am I doing wrong?

Thank you for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

许一世地老天荒 2024-08-12 02:08:17

尝试使用 HTML 格式:

Qt Designer 是这样实现的: TextLabel

Try using HTML formatting: <b><font... etc </b>.

Qt Designer does it like this: <span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

若水般的淡然安静女子 2024-08-12 02:08:17

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

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

Qt 在其 QWidget 派生类上支持大多数 CSS 样式。您无需将文本格式设置为 Qt::RichText 即可正常工作。

You can use Qt StyleSheets and set the styleSheet property of QLabel

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

Qt supports most CSS styles on its QWidget-derived classes. You don't need to set the text format to Qt::RichText for this to work.

相守太难 2024-08-12 02:08:17

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

Qt uses a simple HTML subset for formatting.

梓梦 2024-08-12 02:08:17

您还可以使用 settext 函数以编程方式完成此操作。像这样的事情:

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

您也可以在一行中完成。

You can also do it programmatically using the settext function. Something like this:

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

You can do it in a single line as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文