gpt4 book ai didi

c++ - QlistView如何更改标准项选择

转载 作者:行者123 更新时间:2023-12-02 10:16:47 25 4
gpt4 key购买 nike

我有 QListView 我给他分配了我的模型和委托(delegate),我在其中重新定义了方法 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);
}

它是这样工作的
enter image description here
如您所见,元素与标准蓝色窗口重叠。
这个窗口怎么去掉?

最佳答案

你可以通过 CSS 来实现。

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

QListView::item:selected
{
border: 1.2px;
border-color: #273e51;
border-style: outset;
...etc
}

QListView::item:selected:!active
{

}

QListView::item:selected:active
{

}

QListView::item:hover
{

}

看看这个: https://doc.qt.io/qt-5/stylesheet-reference.html

关于c++ - QlistView如何更改标准项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61644691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com