Russian Qt Forum

Qt => QSS => Тема начата: lit-uriy от Декабрь 18, 2018, 11:58



Название: как покрасить элемент у QTableView, который стилизирован с помощью QSS
Отправлено: lit-uriy от Декабрь 18, 2018, 11:58
Есть QTableView + модель. Всё приложение стилизировано с помощью QSS.

Есть надобность помечать в QTableView некоторые ячейки цветом (подсказка пользователю о неверно введённых в эту вьюху данных).

Классический способ раскрашивания не подходит, т.к. QSS не даёт.

Для всякого рода QLineEdit-ов я пользуюсь установкой свойств
Код
C++ (Qt)
ui->outLow->setProperty("UiWidgetStatus", "error");
а в QSS-ке так:
Код
CSS
QLineEdit [UiWidgetStatus="error"] {
 border-bottom-color: #f50057;
}

А как для ячейки QTableView это сделать никак догнать не могу


Название: Re: как покрасить элемент у QTableView, который стилизирован с помощью QSS
Отправлено: PimenS от Декабрь 20, 2018, 07:31
Скорее всего с QSS этого не сделать нормально. Переопределять data в модели и писать Qt::BackgroundColorRole и Qt::TextColorRole например.

Код:
case Qt::BackgroundColorRole: {
        if (value < 0) {
                return qVariantFromValue(QColor(Qt::red));
        }
        else {
                return qVariantFromValue(QColor(Qt::white));
        }
        break;
}