Подтвердить что ты не робот

Как создать яркую красную текстовую метку в 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 отображает всю строку со всеми фигурными скобками, ключевыми словами и обратными косыми чертами вместо "это полужирный красный текст". Что я делаю неправильно?

Благодарим вас за помощь.

4b9b3361

Ответ 1

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

Конструктор Qt делает это следующим образом: <span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

Ответ 3

Вы можете использовать Qt StyleSheets и установить свойство styleSheet QLabel

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

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

Ответ 4

Вы также можете сделать это программно, используя функцию settext. Что-то вроде этого:

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

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