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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как покрасить элемент у QTableView, который стилизирован с помощью QSS  (Прочитано 30321 раз)
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« : Декабрь 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 это сделать никак догнать не могу
Записан

Юра.
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #1 : Декабрь 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;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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