Op 17-4-2012 16:54, Jason H schreef:
Well I am confused about how the view works.
I'm using QStandardItems, so whatever Qt does with those... I can't find documentation anywhere...

The items in the model do not become widgets. That would be very inefficient. Instead, they are rendered in the view using a delegate that has been set on your view. By default, that is a QStyledItemDelegate.

Anyway, for D&D purposes, an item is just a package of data. At the moment you have the model index, you have access to the data of the item.

Perhaps the question should be: why are you reimplementing the mousePressEvent in this context at all? Did you study the "Using Drag and Drop with Item Views" topic from the Model/View Programming documentation page?

André



------------------------------------------------------------------------
*From:* André Somers <[email protected]>
*To:* [email protected]
*Sent:* Tuesday, April 17, 2012 10:40 AM
*Subject:* Re: [Interest] Getting QTreeView item click offset for DnD

Op 17-4-2012 16:35, Jason H schreef:
I need to repeat this. I'm still lost.
here is my code (child is always NULL):
voidDataPointTreeView::mousePressEvent(QMouseEvent*event)
{
        QTreeView::mousePressEvent(event);
        QModelIndex  mi  =  indexAt(event->pos());
        QWidget  *child  =  indexWidget(mi);
        //QWidget  *child  =  static_cast<QWidget*>(childAt(event->pos()));
        if  (!child)
                return;

        m_dragOffset  =  event->pos()  -  child->pos();
}

Are you even using widgets for your items? I mean: do you call setIndexWidget anywhere? If not, perhaps you should check what indexWidget() actually returns?

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to