Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: UVV от Ноябрь 30, 2007, 11:45



Название: Цвет элемента в combobox
Отправлено: UVV от Ноябрь 30, 2007, 11:45
Поменял цвет элемента в комбобоксе как
Код:
 	comboBox->setItemData(1, Qt::red, Qt::ForegroundRole); 
А как сделать, чтобы при выборе этого элемента цвет не менялся?


Название: Re: Цвет элемента в combobox
Отправлено: EhTemka от Ноябрь 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);
}


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

Однако при потере фокуса цвет комбобокса снова становится цветом по умолчанию.


Название: Re: Цвет элемента в combobox
Отправлено: Вячеслав от Декабрь 12, 2007, 12:43
QComboBox::setItemData с Qt::BackgroundRole не прокатит ?