<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Anybody?<br>
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.<br>
Maybe I do need to just re-implement the drag from scratch?<br>
<br>
It feels like there should be a more elegant solution, right?!<br>
<br>
Cheers,<br>
frank<br>
<br>
<div class="moz-cite-prefix">On 30/07/18 3:24 PM, Frank Rueter |
OHUfx wrote:<br>
</div>
<blockquote type="cite"
cite="mid:cb5fea55-7cc5-11d6-de7d-2afbd46eef12@ohufx.com">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="" markdown-here-wrapper-content-modified="true">
<p style="margin: 0px 0px 1.2em ! important;">Hi all,</p>
<p style="margin: 0px 0px 1.2em ! important;">I have an app that
uses two QListViews with delegates.<br>
The user can drag ad drop items from one view into the other
to create something like a shopping list.<br>
So far so good.<br>
Now I need to enable the user to also drag an item out of the
application entirely.<br>
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?</p>
<p style="margin: 0px 0px 1.2em ! important;">Here is a
simplified example that just needs support for dragging an
item outside of the QApplication.</p>
<p style="margin: 0px 0px 1.2em ! important;">Any tips would be
much appreciated.<br>
</p>
<p style="margin: 0px 0px 1.2em ! important;">Cheers,<br>
frank<br>
</p>
<pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="hljs language-python" style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;display: block; overflow-x: auto; padding: 0.5em; background: rgb(63, 63, 63) none repeat scroll 0% 0%; color: rgb(220, 220, 220); -moz-text-size-adjust: none;"><span class="hljs-keyword" style="color: rgb(227, 206, 171);">import</span> sys
<span class="hljs-keyword" style="color: rgb(227, 206, 171);">from</span> PySide <span class="hljs-keyword" style="color: rgb(227, 206, 171);">import</span> QtGui, QtCore
app = QtGui.QApplication(sys.argv)
<span class="hljs-class"><span class="hljs-keyword" style="color: rgb(227, 206, 171);">class</span> <span class="hljs-title" style="color: rgb(239, 239, 143);">MyList</span><span class="hljs-params">(QtGui.QListView)</span>:</span>
<span class="hljs-function"><span class="hljs-keyword" style="color: rgb(227, 206, 171);">def</span> <span class="hljs-title" style="color: rgb(239, 239, 143);">__init__</span><span class="hljs-params">(self, parent=None)</span>:</span>
super(MyList, self).__init__(parent)
self.setDragEnabled(<span class="hljs-keyword" style="color: rgb(227, 206, 171);">True</span>)
self.setAcceptDrops(<span class="hljs-keyword" style="color: rgb(227, 206, 171);">True</span>)
list1 = MyList()
list2 = MyList()
model1 = QtGui.QStandardItemModel(list1)
model2 = QtGui.QStandardItemModel(list1)
model2.setItemPrototype(QtGui.QStandardItem())
foods = [
<span class="hljs-string" style="color: rgb(204, 147, 147);">'Cookie dough'</span>,
<span class="hljs-string" style="color: rgb(204, 147, 147);">'Hummus'</span>,
<span class="hljs-string" style="color: rgb(204, 147, 147);">'Spaghetti'</span>,
<span class="hljs-string" style="color: rgb(204, 147, 147);">'Dal makhani'</span>,
<span class="hljs-string" style="color: rgb(204, 147, 147);">'Chocolate whipped cream'</span>
]
<span class="hljs-keyword" style="color: rgb(227, 206, 171);">for</span> food <span class="hljs-keyword" style="color: rgb(227, 206, 171);">in</span> 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_()
</code></pre>
<div
title="MDH:SGkgYWxsLDxicj48YnI+SSBoYXZlIGFuIGFwcCB0aGF0IHVzZXMgdHdvIFFMaXN0Vmlld3Mgd2l0aCBkZWxlZ2F0ZXMuPGJyPlRoZSB1c2VyIGNhbiBkcmFnIGFkIGRyb3AgaXRlbXMgZnJvbSBvbmUgdmlldyBpbnRvIHRoZSBvdGhlciB0byBjcmVhdGUgc29tZXRoaW5nIGxpa2UgYSBzaG9wcGluZyBsaXN0Ljxicj5TbyBmYXIgc28gZ29vZC48YnI+Tm93IEkgbmVlZCB0byBlbmFibGUgdGhlIHVzZXIg
dG8gYWxzbyBkcmFnIGFuIGl0ZW0gb3V0IG9mIHRoZSBhcHBsaWNhdGlvbiBlbnRpcmVseS48YnI+
SXMgaXQgcG9zc2libGUgdG8gYWNjZXNzIHRoZSBleGlzdGluZy9kZWZhdWx0IGRyYWcgZXZlbnQg
ZGF0YSB0aGF0IHRoZSBsaXN0IHZpZXcgcHJvZHVjZXMsIHNvIEkgZG9uJ3QgaGF2ZSB0byByZS1p
bnZlbnQgdGhlIHdoZWVsIGZvciB0aGUgaW50ZXJuYWwgZHJhZyZhbXA7ZHJvcD88YnI+PGJyPkhl
cmUgaXMgYSBzaW1wbGlmaWVkIGV4YW1wbGU6PGJyPmBgYHB5dGhvbjxicj5pbXBvcnQgc3lzPGJy
PmZyb20gUHlTaWRlIGltcG9ydCBRdEd1aSwgUXRDb3JlPGJyPjxicj48YnI+YXBwID0gUXRHdWku
UUFwcGxpY2F0aW9uKHN5cy5hcmd2KTxicj48YnI+Y2xhc3MgTXlMaXN0KFF0R3VpLlFMaXN0Vmll
dyk6PGJyPsKgwqDCoCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50PU5vbmUpOjxicj7CoMKgwqDC
oMKgwqDCoCBzdXBlcihNeUxpc3QsIHNlbGYpLl9faW5pdF9fKHBhcmVudCk8YnI+wqDCoMKgwqDC
oMKgwqAgc2VsZi5zZXREcmFnRW5hYmxlZChUcnVlKTxicj7CoMKgwqDCoMKgwqDCoCBzZWxmLnNl
dEFjY2VwdERyb3BzKFRydWUpPGJyPjxicj5saXN0MSA9IE15TGlzdCgpPGJyPmxpc3QyID0gTXlM
aXN0KCk8YnI+bW9kZWwxID0gUXRHdWkuUVN0YW5kYXJkSXRlbU1vZGVsKGxpc3QxKTxicj5tb2Rl
bDIgPSBRdEd1aS5RU3RhbmRhcmRJdGVtTW9kZWwobGlzdDEpPGJyPm1vZGVsMi5zZXRJdGVtUHJv
dG90eXBlKFF0R3VpLlFTdGFuZGFyZEl0ZW0oKSk8YnI+PGJyPjxicj5mb29kcyA9IFs8YnI+wqDC
oMKgICdDb29raWUgZG91Z2gnLDxicj7CoMKgwqAgJ0h1bW11cycsPGJyPsKgwqDCoCAnU3BhZ2hl
dHRpJyw8YnI+wqDCoMKgICdEYWwgbWFraGFuaScsPGJyPsKgwqDCoCAnQ2hvY29sYXRlIHdoaXBw
ZWQgY3JlYW0nPGJyPl08YnI+PGJyPmZvciBmb29kIGluIGZvb2RzOjxicj7CoMKgwqAgaXRlbSA9
IFF0R3VpLlFTdGFuZGFyZEl0ZW0oZm9vZCk8YnI+wqDCoMKgIG1vZGVsMS5hcHBlbmRSb3coaXRl
bSk8YnI+PGJyPmxpc3QxLnNldE1vZGVsKG1vZGVsMSk8YnI+bGlzdDIuc2V0TW9kZWwobW9kZWwy
KTxicj48YnI+dyA9IFF0R3VpLlFTcGxpdHRlcigpPGJyPncuYWRkV2lkZ2V0KGxpc3QxKTxicj53
LmFkZFdpZGdldChsaXN0Mik8YnI+dy5zaG93KCk8YnI+dy5yYWlzZV8oKTxicj5hcHAuZXhlY18o
KTxicj5gYGA8YnI+PGJyPg=="
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"></div>
</div>
<div class="moz-signature markdown-here-signature">-- <br>
<p> </p>
<!-- A { text-decoration:none } -->
<table style="width: 524px; height: 58px;" border="0">
<tbody>
<tr>
<td style="text-align: right;"><a
href="http://www.ohufx.com" moz-do-not-send="true"><img
src="http://ohufx.com/images/ohufxLogo_50x50.png"
alt="ohufxLogo 50x50" moz-do-not-send="true"></a> </td>
<td style="text-align: center;"> <br>
</td>
<td style="text-align: left;"><strong><span
style="font-size: 8pt;"><a
href="http://ohufx.com/compositing.html"
moz-do-not-send="true">vfx compositing</a></span>
| <span style="font-size: 8pt;"><strong><a
href="http://ohufx.com/customising.html"
moz-do-not-send="true">workflow customisation
and consulting</a></strong> </span> </strong>
</td>
</tr>
<tr>
<td style="text-align: right;"> </td>
<td style="text-align: center;"> </td>
<td style="text-align: left;"><strong><span
style="font-size: 8pt;"><a
href="http://ohufx.com/compositing.html"
moz-do-not-send="true"> </a></span></strong> <br>
</td>
</tr>
<tr>
<td style="text-align: right;"><a
href="http://www.nukepedia.com/nubridge"
moz-do-not-send="true"><img
src="http://nukepedia.com/images/nuBridge/logo/nuBridge_logo.png"
alt="" moz-do-not-send="true"> </a> </td>
<td style="text-align: center;"> <br>
</td>
<td style="text-align: center;">
<p style="text-align: left;"><a style="color: #999;
font-size: 10px; font-family: Arial, Helvetica,
sans-serif;"
href="http://www.nukepedia.com/nubridge"
moz-do-not-send="true">Your gateway to over 1,000
free tools... right inside of Nuke</a>
<style><!--A{text-decoration:none}--></style> </p>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Interest mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Interest@qt-project.org">Interest@qt-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.qt-project.org/mailman/listinfo/interest">http://lists.qt-project.org/mailman/listinfo/interest</a>
</pre>
</blockquote>
<br>
</body>
</html>