Название: Изменение цвета текста в QLabel Отправлено: kadr от Декабря 17, 2009, 13:12 Привет всем, подскажите как в коде изменить цвет текста в QLabel!
Пытаюсь по такому вот методу: ui->alians_time->palette().text().setColor(color.red()); А он выдает ошибку: passing 'const QBrush' as 'this' argument of 'void QBrush::setColor(const QColor&)' discards qualifiers Название: Re: Изменение цвета текста в QLabel Отправлено: SimpleSunny от Декабря 17, 2009, 13:38 m->palette() - Константный метод, поэтому через него не можем менять.
QPalette pal(m->palette()); ... m->setPalette(pal); Название: Re: Изменение цвета текста в QLabel Отправлено: kadr от Декабря 17, 2009, 13:50 m->palette() - Константный метод, поэтому через него не можем менять. А можно по конкретнее относительно моего случая, что такое m и где она объявляется, и как конкретно задать цвет текста для QLabel! ???QPalette pal(m->palette()); ... m->setPalette(pal); Название: Re: Изменение цвета текста в QLabel Отправлено: SimpleSunny от Декабря 17, 2009, 13:55 m - это твой QLabel. Т. е. создаешь свой QPalette на основе QLabel->palette(). Изменяешь его на свой вкус (в твоем случае меняешь цвет) и задаешь измененный palette QLabel->setPalette();
Название: Re: Изменение цвета текста в QLabel Отправлено: kadr от Декабря 17, 2009, 14:03 m - это твой QLabel. Т. е. создаешь свой QPalette на основе QLabel->palette(). Изменяешь его на свой вкус (в твоем случае меняешь цвет) и задаешь измененный palette QLabel->setPalette(); Хорошо я сделал так:if (inf.lastModified().toString("dd.MM.yyyy") != date.currentDate().toString("dd.MM.yyyy")) { QPalette pal(ui->alians_time->palette()); ui->alians_time->setPalette(pal); } А как сам цвет то изменить, мне до сих пор остается не ясным! Название: Re: Изменение цвета текста в QLabel Отправлено: NicK от Декабря 17, 2009, 14:05 Код: lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>"); Название: Re: Изменение цвета текста в QLabel Отправлено: SimpleSunny от Декабря 17, 2009, 14:09 Ты же сам написал в первом своём посте, как менять цвет. ???
pal.setColor(QPalette::TExt, color.red()); Код: lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>"); А если "Some coloured text" = <html>...</html> или другие прочие радости, ИМХО лучше пользоваться штатными средствами. Название: Re: Изменение цвета текста в QLabel Отправлено: kadr от Декабря 17, 2009, 14:27 Код: lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>"); Название: Re: Изменение цвета текста в QLabel Отправлено: kadr от Декабря 17, 2009, 14:28 Ты же сам написал в первом своём посте, как менять цвет. ??? Так не работает!pal.setColor(QPalette::TExt, color.red()); Код: lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>"); А если "Some coloured text" = <html>...</html> или другие прочие радости, ИМХО лучше пользоваться штатными средствами. Название: Re: Изменение цвета текста в QLabel Отправлено: SimpleSunny от Декабря 17, 2009, 14:38 Просто с ролью слегка напутал.
pal.setColor(QPalette::WindowText, color.red()); P. S. И имелось виду color.red() или всё-таки Qt::red? P. P. S. (inf.lastModified().toString("dd.MM.yyyy") != date.currentDate().toString("dd.MM.yyyy")) Зачем переводить в строки? (inf.lastModified() != date.currentDate()) Название: Re: Изменение цвета текста в QLabel Отправлено: DenisKh001 от Мая 02, 2011, 20:04 вот так правильно: pal.setColor(QPalette::Text, Qt::red);
|