Приветствую.
Необходимо, чтобы в 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 );
}
...
if( role == Qt::BackgroundRole )
{
QBrush b = m_backgroundColor.value(idx); // QMap<QModelIndex,QBrush>
return b;
}
...
Если было бы все так просто...)
igor_bogomolov может не так понял суть задачи?
Допустим есть два виджета на форме, один QTableView, другой QLineEdit.
Когда выделяю ячейку в QTableView, тогда выделяется вся строка, тут да - setSelectionBehavior(QAbstractItemView::SelectRows) помогает
Но когда я ставлю курсор ввода в QLineEdit, то выделение в QTableView перестается рисоваться, но текущая строка так и осталась.
Затем снова тыкаю на QTableView (причем на пустое место) и выделение строки снова рисуется.
Надо чтобы при тычке на QLineEdit, выделение в QTableView продолжалось рисоваться
Не стоит ниче писать)
Проблема была в теме оформления, используемой в системе. При других темах все правильно отображается
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)