C++ 如何更改标准项目选择QlistView

C++ 如何更改标准项目选择QlistView,c++,qt,model-view-controller,C++,Qt,Model View Controller,我给QListView分配了我的模型和委托,在其中我重新定义了方法paint(…): 它是这样工作的 如您所见,元素通过标准蓝色窗口重叠。 如何删除此窗口?您可以通过CSS执行此操作 看看这个(在css或QWidget::setStyle(QStyle*style)文件中): 看看这个:你已经指出了你不想获得的东西,但是你没有解释或展示最重要的东西:你想要什么obtain@eyllanesc看到变化了吗 void PlainDelegate::paint(QPainter *painter, c

我给QListView分配了我的模型和委托,在其中我重新定义了方法
paint(…)

它是这样工作的 如您所见,元素通过标准蓝色窗口重叠。
如何删除此窗口?

您可以通过CSS执行此操作

看看这个(在css或
QWidget::setStyle(QStyle*style)
文件中):


看看这个:

你已经指出了你不想获得的东西,但是你没有解释或展示最重要的东西:你想要什么obtain@eyllanesc看到变化了吗
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);
}
QListView::item:selected
{
     border: 1.2px;
     border-color: #273e51;
     border-style: outset;
     ...etc
}

QListView::item:selected:!active
{

}

QListView::item:selected:active
{

}

QListView::item:hover
{

}