Is it possible to deselect in a QTreeView by clicking off an item?

后端 未结 8 1210
盖世英雄少女心
盖世英雄少女心 2020-12-30 05:35

I\'d like to be able to deselect items in my QTreeView by clicking in a part of the QTreeView with no items in, but I can\'t seem to find anyway of doing this. I\'d intercep

8条回答
  •  失恋的感觉
    2020-12-30 06:13

    The clearSelection does not work in my case. I'm using treeviews with a singleselection mode. Here is what I've coded:

    class DeselectableTreeView : public QTreeView
    {
    public:
        DeselectableTreeView(QWidget *parent) : QTreeView(parent) {}
        virtual ~DeselectableTreeView() {}
    
    private:
        virtual void mousePressEvent(QMouseEvent *event)
        {
            QModelIndex item = indexAt(event->pos());
            bool selected = selectionModel()->isSelected(item);
            QTreeView::mousePressEvent(event);
            if (selected)
                selectionModel()->select(item, QItemSelectionModel::Deselect);
        }
    
    };
    

    This works really fine.

    Eric

提交回复
热议问题