如何在 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 显示包含所有大括号、关键字和反斜杠的整个字符串,而不是“这是粗体红色文本”。我做错了什么?
感谢您的帮助。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试使用 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>
您可以使用 Qt StyleSheets 并设置
styleSheet
属性QLabel
Qt 在其
QWidget
派生类上支持大多数 CSS 样式。您无需将文本格式设置为Qt::RichText
即可正常工作。You can use Qt StyleSheets and set the
styleSheet
property ofQLabel
Qt supports most CSS styles on its
QWidget
-derived classes. You don't need to set the text format toQt::RichText
for this to work.Qt 使用简单的 HTML 子集 进行格式化。
Qt uses a simple HTML subset for formatting.
您还可以使用
settext
函数以编程方式完成此操作。像这样的事情:您也可以在一行中完成。
You can also do it programmatically using the
settext
function. Something like this:You can do it in a single line as well.