[Interest] QListView with delegate: support drag outside of QApplication
Frank Rueter | OHUfx
frank at ohufx.com
Sun Aug 5 04:33:22 CEST 2018
For posterity, this is the solution:
|import sys from PySide import QtGui, QtCore class
MyModel(QtGui.QStandardItemModel): def __init__(self, w, parent=None):
super(MyModel, self).__init__(parent) def mimeData(self, indexes):
mimeData = super(MyModel, self).mimeData(indexes)
mimeData.setText('test') return mimeData class MyList(QtGui.QListView):
def __init__(self, parent=None): super(MyList, self).__init__(parent)
self.setDragEnabled(True) self.setAcceptDrops(True) if __name__ ==
'__main__': app = QtGui.QApplication(sys.argv) list1 = MyList() list2 =
MyList() model1 = MyModel(list1) model2 = MyModel(list1)
model2.setItemPrototype(QtGui.QStandardItem()) foods = [ 'Cookie dough',
'Hummus', 'Spaghetti', 'Dal makhani', 'Chocolate whipped cream' ] for
food in foods: item = QtGui.QStandardItem(food) model1.appendRow(item)
list1.setModel(model1) list2.setModel(model2) w = QtGui.QSplitter()
w.addWidget(list1) w.addWidget(list2) w.show() w.raise_() app.exec_() |
On 31/07/18 9:13 PM, Frank Rueter | OHUfx wrote:
> Anybody?
> Been trying to play with the view's dragMoveEvent to take over the
> default drag event's mime data and create a custom QDrag instance with
> it, but that crashes. I also tried just adding test to the event's
> mime data, but that has no effect.
> Maybe I do need to just re-implement the drag from scratch?
>
> It feels like there should be a more elegant solution, right?!
>
> Cheers,
> frank
>
> On 30/07/18 3:24 PM, Frank Rueter | OHUfx wrote:
>>
>> Hi all,
>>
>> I have an app that uses two QListViews with delegates.
>> The user can drag ad drop items from one view into the other to
>> create something like a shopping list.
>> So far so good.
>> Now I need to enable the user to also drag an item out of the
>> application entirely.
>> Is it possible to access the drag event data that the list view
>> produces by default, so I don’t have to re-invent the wheel for the
>> already functioning internal drag&drop?
>>
>> Here is a simplified example that just needs support for dragging an
>> item outside of the QApplication.
>>
>> Any tips would be much appreciated.
>>
>> Cheers,
>> frank
>>
>> |import sys from PySide import QtGui, QtCore app =
>> QtGui.QApplication(sys.argv) class MyList(QtGui.QListView): def
>> __init__(self, parent=None): super(MyList, self).__init__(parent)
>> self.setDragEnabled(True) self.setAcceptDrops(True) list1 = MyList()
>> list2 = MyList() model1 = QtGui.QStandardItemModel(list1) model2 =
>> QtGui.QStandardItemModel(list1)
>> model2.setItemPrototype(QtGui.QStandardItem()) foods = [ 'Cookie
>> dough', 'Hummus', 'Spaghetti', 'Dal makhani', 'Chocolate whipped
>> cream' ] for food in foods: item = QtGui.QStandardItem(food)
>> model1.appendRow(item) list1.setModel(model1) list2.setModel(model2)
>> w = QtGui.QSplitter() w.addWidget(list1) w.addWidget(list2) w.show()
>> w.raise_() app.exec_() |
>>
>> --
>>
>> ohufxLogo 50x50 <http://www.ohufx.com>
>> *vfx compositing <http://ohufx.com/compositing.html> | *workflow
>> customisation and consulting <http://ohufx.com/customising.html>* *
>> *<http://ohufx.com/compositing.html>*
>> <http://www.nukepedia.com/nubridge>
>>
>>
>> Your gateway to over 1,000 free tools... right inside of Nuke
>> <http://www.nukepedia.com/nubridge>
>>
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180805/adbf9337/attachment.html>
More information about the Interest
mailing list