Russian Qt Forum
Ноябрь 26, 2024, 01:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Цвет элемента в combobox  (Прочитано 4227 раз)
UVV
Гость
« : Ноябрь 30, 2007, 11:45 »

Поменял цвет элемента в комбобоксе как
Код:
 	comboBox->setItemData(1, Qt::red, Qt::ForegroundRole); 
А как сделать, чтобы при выборе этого элемента цвет не менялся?
Записан
EhTemka
Гость
« Ответ #1 : Ноябрь 30, 2007, 18:49 »

повесить какой нибудь слот на сигнал currentIndexChanged

Вообщем как-то так:
Код:
...
connect(boxTextColor, SIGNAL(currentIndexChanged(int)), this, SLOT(setTextColor(int)));
...

void MessageForum::setTextColor(int indexItemBox/*текущий индекс*/)
{
QPalette pal = boxTextColor->palette();
pal.setColor(QPalette::ButtonText, boxTextColor->itemData(indexItemBox, Qt::ForegroundRole).value<QColor>());
boxTextColor->setPalette(pal);
}
Записан
UVV
Гость
« Ответ #2 : Декабрь 12, 2007, 12:37 »

повесить какой нибудь слот на сигнал currentIndexChanged
...
Да, спасибо, помогло, но отчасти.
Вот этот фрагмент устанавливает цвет только при выборе элемента:
Код:
pal.setColor(QPalette::HighlightedText, comboBoxBloodGroup->itemData(index, Qt::ForegroundRole).value<QColor>())

Однако при потере фокуса цвет комбобокса снова становится цветом по умолчанию.
Записан
Вячеслав
Гость
« Ответ #3 : Декабрь 12, 2007, 12:43 »

QComboBox::setItemData с Qt::BackgroundRole не прокатит ?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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