Russian Qt Forum

Qt => Model-View (MV) => Тема начата: folibis от Июнь 28, 2010, 08:35



Название: SelectRows и State_Selected
Отправлено: folibis от Июнь 28, 2010, 08:35
У меня есть такая конструкция: QTableView(MyTable), в качестве модели используется класс, производный от QAbstractTableModel, для отрисовки использую делегат, производный от QStyledItemDelegate(MyTableDelegate).
нужно чтоб при клике выделялась только строка, для этого делаю:
Код:
MyTable->setSelectionBehavior(QAbstractItemView::SelectRows);
в событии MyTableDelegate::paint выделенную строку я отлавливаю так:
Код:
if(option.state & QStyle::State_Selected){тут закрашиваю строку цветом выделения}
Все отлично, но есть одно дополнительное условие - та ячейка, на которой был клик, должна быть закрашена отдельным цветом. Но вот как узнать эту ячейку, не могу понять. Все ячейки строки,и нужная мне тоже, все попадают под QStyle::State_Selected, как отделить зерна от плевел?


Название: Re: SelectRows и State_Selected
Отправлено: asvil от Июнь 28, 2010, 08:42
if(option.state & QStyle::State_HasFocus) {тут закрашиваю строку цветом текущей ячейки}


Название: Re: SelectRows и State_Selected
Отправлено: folibis от Июнь 29, 2010, 01:12
Супер, то что надо. Что то я все свойства прошел, а это не заметил. Спасибо!