1

我不希望在鼠标悬停时突出显示行。如何禁用此突出显示?

在此处输入图像描述

要么完全删除突出显示,要么改变它的颜色:两种解决方案都很好。

4

2 回答 2

1
tView->setStyleSheet("QTreeView::item:hover{background-color:rgb(255,255,255);}");
于 2017-07-19T08:39:34.303 回答
0

您可以通过委托方式进行操作:

#include <QStyledItemDelegate>

class NoHighlightDelegate:public QStyledItemDelegate{
public:
    void initStyleOption(QStyleOptionViewItem*option,const QModelIndex&viewIndex)const override{
        QStyledItemDelegate::initStyleOption(option,viewIndex);
        option->state&=~QStyle::State_MouseOver;}

};

然后将此委托设置为您的QTreeView

//QTreeView*view;
auto*delegate=new NoHighlightDelegate();
delegate->setParent(view);
view->setItemDelegate(delegate);

而且您不会遇到隐藏的选定线问题。

于 2020-12-10T11:31:50.423 回答