QTreeView 禁用悬停在行上的突出显示
QTreeView disable highlighting on a row hover
我不想在鼠标悬停时突出显示行。如何禁用此突出显示?
完全删除突出显示或更改其颜色:两种解决方案都可以。
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);
并且不会陷入隐藏选行问题
我不想在鼠标悬停时突出显示行。如何禁用此突出显示?
完全删除突出显示或更改其颜色:两种解决方案都可以。
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);
并且不会陷入隐藏选行问题