Russian Qt Forum

Qt => Qt Quick => Тема начата: 0x0001 от Сентябрь 02, 2012, 13:12



Название: Drag & Drop from QML Item
Отправлено: 0x0001 от Сентябрь 02, 2012, 13:12
есть список QML ListView (модель из C++), нужно перетаскивать элементы в другое окно этого же приложения, как сделать проще ?
В С++ то это делается просто:
Код
C++ (Qt)
       QDrag *drag= new QDrag(this);
       QMimeData *mimedata= new QMimeData();
       QByteArray bArr = "data to send by dd";
       mimedata->setData ("application/mdd",bArr);
       drag->setMimeData (mimedata);
       drag->setDragCursor(QPixmap(":cursor.png"),Qt::MoveAction);
       drag->setHotSpot (QPoint(63,69));
       drag->setPixmap (QPixmap(":ddpic.png"));
       drag->exec(Qt::MoveAction);//run...
       if(drag) delete drag;
[/size]


Название: Re: Drag & Drop from QML Item
Отправлено: 0x0001 от Сентябрь 02, 2012, 18:41
РЕШЕНО, кому интересно все элементарно и прекрасно работает!
в QML в событии Делегата ListView пишем (простейший код, надо еще добавить антидребезг и обработку release...)
Код
C++ (Qt)
onPressed: {
                   var temp = var_mouse_act //copy all values to 'temp'
                   if (pressedButtons & Qt.LeftButton)
                       {
                       container.ListView.view.currentIndex = index
                       container.forceActiveFocus()
                       temp[0] = container.ListView.view.currentIndex //our Selected index!!!
                       var_mouse_act = temp
                       mCppObj.cppMouseSlot(var_mouse_act)
                       }
}
[/size]
ну а в самом слоте cppMouseSlot(QVariant &v) тот код что в начале темы...
все, QML элемент далее Drag&Drop-ится прекрасно в нужный контейнер!


Название: Re: Drag & Drop from QML Item
Отправлено: OKTA от Август 22, 2013, 01:29
Да, это то, что я искал) ееее))