QTreeView отключить подсветку при наведении строки

Я не хочу, чтобы строки были выделены при наведении курсора мыши. Как отключить эту подсветку?

Либо уберите выделение, либо измените его цвет: оба решения хороши.

2 ответа

Решение
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);

И вы не попадете в проблему скрытой выделенной линии.

Другие вопросы по тегам