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