Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

How to get TreeItem from within TreeView delegate?



  • My TreeView delegate captures when a user hovers over a specific item in the TreeView. I'm using a custom model derived from QAbstractItemModel which holds a plain class called MyTreeItem. Within each MyTreeItem is a member varaible that holds a unique id.

    Is there a way to obtain the item that the mousehover was detected over so that I can grab this id?

    void MyTreeViewDelegate::paint(QPainter *painter,
    const QStyleOptionViewItem &option, const QModelIndex &index) const
    {
        // ...
        if (option.state & QStyle::State_MouseOver) {
    
            // how to get the item that has the mouseover here?
    
        }
        // ...
    }

  • Qt Champions 2019

    Isn't index enough? From there you can get all the data with QModelIndex::data()


Log in to reply