Как создать жирную красную текстовую метку в Qt?

Я хочу написать одну жирную красную строку в моем приложении, используя Qt.

насколько я понимаю, я бы создал QLabel, установил его textFormat в rich text и дал ему строку rich text для отображения:

QLabel *warning = new QLabel;
warning->setTextFormat(Qt::RichText);
warning->setText("{rtf1ansiansicpg1252 {fonttblf0fswissfcharset0 Helvetica;} {colortbl;red255green0blue0;} f0 cf0 this is bold red text}");

я протестировал эту строку в текстовом редакторе, и она отображается нормально.

но Qt отображает всю строку со всеми фигурными скобками, ключевыми словами и обратными косыми чертами вместо "это жирный красный текст". Что я делаю не так?

спасибо тебе за помощь.

4 ответов


попробуйте использовать форматирование HTML: <b><font... etc </b>.

Qt Designer делает это так:<span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>


можно использовать Таблицы Стилей Qt и выберите styleSheet собственность QLabel

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

Qt поддерживает большинство стилей CSS на своем QWidget-производные классы. Вам не нужно устанавливать текстовый формат в Qt::RichText для этого, чтобы работать.


Qt использует простой подмножество HTML для форматирования.


вы также можете сделать это программно, используя

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

вы также можете сделать это в одной строке.