Я использую делегата, чтобы установить синий фон ячейки в tableView. Код выглядит следующим образом:
void Delegate::setModelData(some parameters)
{
QStandardItem *item = model->item(modelIndex);
item->setBackground(QBrush(Qt::blue));
item->setText("hello")
}
Хотя и не очень ясно (синий фон), вы все еще можете видеть в последнем столбце, нет линии сетки, чтобы отделить ячейку.
Не могли бы вы сказать мне, что не так с этими двумя проблемами, и как их решить? Спасибо, очень впереди.
setModelData (), чтобы место для сохранения данных формировало ваш пользовательский редактор для модели. Вы должны настроить рисование ячейки в виртуальной функции paint ():
void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
// Your manipulation with QPainter and QStyleOptionViewItem
QStyledItemDelegate::paint(painter, &option, &index);
}
Вы должны изменить QStyleOptionViewItem :: backgroundBrush
Других решений пока нет …