C++ 如何更改标准项目选择QlistView
我给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
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
{
}