Необходимо, чтобы в QTableView, вне зависимости от состояния фокуса ввода, всегда была выделена текущая строка.
Так же в модели в методе bool setData(const QModelIndex &index, const QVariant &value, int role) есть код:
if( role != Qt::BackgroundRole )
return QSqlTableModel::setData(index,value,role);
m_backgroundColor[index] = value.value<QBrush>();
return true;
Устанавливаю цвет фона так:
int columnCount = m_ordersTableModel->columnCount();
int row = current.row();
QBrush color = tableOrders->palette().alternateBase();
for( int column = 0; column < columnCount; column++ )
{
QModelIndex idx = m_ordersTableModel->index(row,column);
m_ordersTableModel->setData( idx, color, Qt::BackgroundRole );
}
в палитре tableOrders alternateBase отличается от base
В модели в методе QVariant data(const QModelIndex &idx, int role) const есть код:
...
if( role == Qt::BackgroundRole )
{
QBrush b = m_backgroundColor.value(idx); // QMap<QModelIndex,QBrush>
return b;
}
...
Убедился, что этот код выполняется, когда QTableView перерисовывает ячейку, так же убедился что QBrush b содержит необходимый мне цвет заливки.
Тем не менее цвет фона ячейки по-прежнему заливается "обычным" цветом.
Есть варианты?)