у меня есть QListView. Я назначил ему своего делегата Modeland, в котором я переопределил метод paint(..)
:
void PlainDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QRect rect = option.rect;
QLinearGradient gradient(0,0,rect.width(),rect.height());
if (option.state & QStyle::State_Selected)
{
gradient.setColorAt(1,Qt::black); //not work
}
else if(option.state & QStyle::State_MouseOver&& !isEditorOpen)
{
//set gradient
}
else
{
//set gradient
}
painter->fillRect(option.rect, gradient);
painter->setPen(Qt::NoPen);
painter->setBrush(gradient);
painter->drawRect(rect);
QStyledItemDelegate::paint(painter,option,index);
}
он работает вот так элементы перекрываются стандартным синим окном. Как убрать это окно?