Название: Подсветка заднего фона у QComboBox Отправлено: Danila_Bagrofff от Сентябрь 06, 2011, 12:06 Имеем:
Код: qCmBxStates = new QComboBox(); Подсветка есть только в листе благодаря модели. А надо сделать подсветку именно в выбранном состоянии. Когда выбран определенный тип из списка. Никак не светится. Всегда серый фон... Как сделать? Название: Re: Подсветка заднего фона у QComboBox Отправлено: Danila_Bagrofff от Сентябрь 06, 2011, 12:53 Сам нашел, сам отвечу =)
Код: void SearchWidget::updateState(int row) Единственное что, стиль сразу становится другим, а не стандартным.... выглядит не очень красиво... Вместо градиентной заливки она становится монотонной + скругления пропали... Как вернуть стиль?... пока не нашел подходящего тега... Название: Re: Подсветка заднего фона у QComboBox Отправлено: twp от Сентябрь 06, 2011, 15:37 ну так же как и установка цвета фона - через стили. Можно и округление сделать и градиентность http://doc.qt.nokia.com/4.7-snapshot/stylesheet-examples.html#customizing-qcombobox (http://doc.qt.nokia.com/4.7-snapshot/stylesheet-examples.html#customizing-qcombobox)
Вообще по идее можно избавится от костыля getColorState ибо использовать строковые данные для того чтоб определить цвет - это нечто. Ведь узнать цвет можно прямо из модели используя Qt::BackgroundRole, например так: Код: QModelIndex index = qCmBxStates->model()->index(row, 0); Я не проверял, но по идее можно вообще не использовать стили, а просто установить полученный цвет как фон в комбобоксе: Код: QPalette palette = qCmBxStates->palette(); Название: Re: Подсветка заднего фона у QComboBox Отправлено: Danila_Bagrofff от Сентябрь 06, 2011, 16:45 цвет я получаю, без проблем =)
А вот назначить через palette его не получается =) Вначале писал тоже самое, что и ты указывал =) Именно на сам ComboBox задний фон не меняет, не в листе! Название: Re: Подсветка заднего фона у QComboBox Отправлено: twp от Сентябрь 06, 2011, 17:09 читани это (http://stackoverflow.com/questions/177778/in-qt-how-do-i-set-the-background-color-of-a-widget-like-combobox-or-double-spin) может что-то поможет, в первую очередь QPalette::Base
|