我不希望在鼠标悬停时突出显示行。如何禁用此突出显示?
要么完全删除突出显示,要么改变它的颜色:两种解决方案都很好。
tView->setStyleSheet("QTreeView::item:hover{background-color:rgb(255,255,255);}");
您可以通过委托方式进行操作:
#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);
而且您不会遇到隐藏的选定线问题。