Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: fulkabaster от Февраль 07, 2010, 17:47



Название: Раскрасить текст в QLabel
Отправлено: fulkabaster от Февраль 07, 2010, 17:47
Подскажите, пожалуйста, как по-простому, имея переменную типа QColor, передать ее в QLabel, чтобы текст стал заданного цвета? (Я знаю, что можно использовать в самом тексте html-тэги для этого, но нужно именно через QColor). Полез разбираться в assistant - там через палитры что-то менять, короче муторно, для такой простой задачки, которая мне вряд ли еще когда пригодится :)


Название: Re: Раскрасить текст в QLabel
Отправлено: MoPDoBoPoT от Февраль 07, 2010, 18:42
Полез разбираться в assistant - там через палитры что-то менять
Ну да, через палитру:
Код:
...
QLabel *lbl = new QLabel(this);
QColor color;
...
QPalette palette(lbl->palette());  //копируем имеющуюся палитру лейбла (вдруг нестандартная)
palette.setColor(QPalette::WindowText, color);
lbl->setPalette(palette);
...


Название: Re: Раскрасить текст в QLabel
Отправлено: fulkabaster от Февраль 07, 2010, 18:52
Спасибо!


Название: Re: Раскрасить текст в QLabel
Отправлено: fulkabaster от Февраль 07, 2010, 19:54
А почему не удается таким же способом изменить фон для надписи в QLabel? Делаю то же самое, но вместо QPalette::WindowText передаю QPalette::Window (либо QPalette::Background) - но фон не меняется, остается обычным серым.


Название: Re: Раскрасить текст в QLabel
Отправлено: Павел_F. от Февраль 07, 2010, 20:28
еще добавте setAutoFillBackground( true) и тогда фон закрасится.


Название: Re: Раскрасить текст в QLabel
Отправлено: break от Февраль 10, 2010, 23:50
Можно проще

<font color="red">TEXT</font>

и аналогичные теги

при этом в свойстве textFormat - должно быть RichText или AutoText