代码之家  ›  专栏  ›  技术社区  ›  Nikolai Shalakin

QTreeView在行悬停时禁用高亮显示

  •  1
  • Nikolai Shalakin  · 技术社区  · 9 年前

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

    enter image description here

    2 回复  |  直到 9 年前
        1
  •  1
  •   Vahagn Avagyan    9 年前
    tView->setStyleSheet("QTreeView::item:hover{background-color:rgb(255,255,255);}");
    
        2
  •  1
  •   Arnaud    4 年前

    #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);
    

    推荐文章