Russian Qt Forum
Июнь 11, 2024, 14:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменение цвета текста в QLabel  (Прочитано 19168 раз)
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
« Последнее редактирование: Декабрь 17, 2009, 13:28 от kadr » Записан
SimpleSunny
Гость
« Ответ #1 : Декабрь 17, 2009, 13:38 »

m->palette()  - Константный метод, поэтому через него не можем менять.

QPalette pal(m->palette());
...
m->setPalette(pal);
Записан
kadr
Гость
« Ответ #2 : Декабрь 17, 2009, 13:50 »

m->palette()  - Константный метод, поэтому через него не можем менять.

QPalette pal(m->palette());
...
m->setPalette(pal);
А можно по конкретнее относительно моего случая, что такое m и где она объявляется, и как конкретно задать цвет текста для QLabel!  Непонимающий
Записан
SimpleSunny
Гость
« Ответ #3 : Декабрь 17, 2009, 13:55 »

m - это твой QLabel. Т. е. создаешь свой QPalette на основе QLabel->palette(). Изменяешь его на свой вкус (в твоем случае меняешь цвет) и задаешь измененный palette QLabel->setPalette();
Записан
kadr
Гость
« Ответ #4 : Декабрь 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);

    }
А как сам цвет то изменить, мне до сих пор остается не ясным!
Записан
NicK
Гость
« Ответ #5 : Декабрь 17, 2009, 14:05 »

Код:
 lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>");
Записан
SimpleSunny
Гость
« Ответ #6 : Декабрь 17, 2009, 14:09 »

Ты же сам написал в первом своём посте, как менять цвет. Непонимающий
pal.setColor(QPalette::TExt, color.red());

Код:
 lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>");

А если "Some coloured text" = <html>...</html> или другие прочие радости, ИМХО лучше пользоваться штатными средствами.
« Последнее редактирование: Декабрь 17, 2009, 14:11 от SimpleSunny » Записан
kadr
Гость
« Ответ #7 : Декабрь 17, 2009, 14:27 »

Код:
 lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>");
Да это то что надо, спасибо!
Записан
kadr
Гость
« Ответ #8 : Декабрь 17, 2009, 14:28 »

Ты же сам написал в первом своём посте, как менять цвет. Непонимающий
pal.setColor(QPalette::TExt, color.red());

Код:
 lable->setText("<FONT COLOR=#008000>Some coloured text</FONT>");

А если "Some coloured text" = <html>...</html> или другие прочие радости, ИМХО лучше пользоваться штатными средствами.
Так не работает!
Записан
SimpleSunny
Гость
« Ответ #9 : Декабрь 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())
Записан
DenisKh001
Гость
« Ответ #10 : Май 02, 2011, 20:04 »

вот так правильно: pal.setColor(QPalette::Text, Qt::red);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 17.