Я использую QTableView и QStandardItemModel, и я пытаюсь покрасить строку с оставшимся черным шрифтом.QTableView, устанавливая шрифт ячейки и цвет фона
Я использую метод рисования моего делегата класса,:
void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QBrush brush(Qt::red, Qt::SolidPattern);
painter->setBackground(brush);
}
Это не работает на всех, и это делает текст внутри каждой ячейки прозрачным. Что я здесь делаю неправильно?
[EDIT] Я также использовал painter->fillRect(option.rect, brush);
, но он делает фон ячейки и текст того же цвета.
Вам не нужно использовать делегат. Просто попробуйте 'QStandardItem :: setData()' с функциями 'Qt :: FontRole' и' Qt :: BackgroundColorRole'. – vahancho
он не делает текст прозрачным, он не окрашен, так как ваша реализация ничего не делает. Ваш класс «Делегат» наследует что-то полезное? –
Я добавил функцию 'drawDisplay()' в сочетании с 'fillRect()', которая, похоже, делает то, что я хочу, крашу фон и сохраняю текст черным – ethane