[PyQt] Drop to system
Hugo Léveillé
hugol at fastmail.net
Thu Sep 9 16:04:03 BST 2010
Thanks alot
On Thu, 09 Sep 2010 14:24 +0100, "Baz Walter" <bazwal at ftml.net> wrote:
> On 09/09/10 01:17, David Boddie wrote:
> > On Wed Sep 8 22:33:17 BST 2010, Hugo Leveille wrote:
> >
> >> I have looked at the doc but all I could find was drag and drop within the
> >> pyqt app itself. What id like to do is the, for exemple, attach an url or
> >> whatever needed to an item so that if I drag the item into my desktop, in a
> >> explorer window or whatever othe app that support drag drop, it will
> >> recongnize it
> >>
> >> Some if anyone is nice enought to give me a quick exemple or to point me at
> >> the specific exemple where it is shown, it would be very nice
> >
> > It's been a while since I looked at this sort of thing, and the example I
> > hoped would help me remember doesn't actually do anything with URLs...
> >
> > You need to set the URL of the MIME data you create when you start a drag
> > operation:
> >
> > http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qmimedata.html#setUrls
> >
> > I seem to remember that you have to supply URLs for certain things to work
> > on certain systems, and this may mean that you have to save data to a
> > temporary file, then set the URL of that file, when filling in the MIME data.
> >
> > Here is one way to do it that doesn't use a temporary file:
> >
> > http://www.diotavelli.net/PyQtWiki/Exporting_a_file_to_other_applications
> >
> > The Drop Site example in Qt is useful for looking at the MIME types of data
> > dragged from other applications. It would be useful if someone ported that
> > to PyQt.
>
> as i pointed out in an earlier post, the draggabletext example in the
> pyqt sources can easily be adapted to work with urls: just change
> mimeData.setText to mimeData.setUrls and it will just work :)
>
> anyway, here's a simplified version of the wiki example that doesn't
> write any additional files:
>
> import sys, os
> from PyQt4.QtCore import Qt, QMimeData, QUrl
> from PyQt4.QtGui import QApplication, QLabel, QDrag
>
>
> class Window(QLabel):
> def __init__(self):
> QLabel.__init__(self)
> self.setWindowTitle('Drag File Url')
> self.setText(os.path.join(os.getcwd(), __file__))
> self.setMargin(20)
>
> def mousePressEvent(self, event):
> if event.button() == Qt.LeftButton:
> data = QMimeData()
> data.setUrls([QUrl.fromLocalFile(self.text())])
> drag = QDrag(self)
> drag.setMimeData(data)
> drag.exec_()
>
>
> if __name__ == "__main__":
>
> app = QApplication(sys.argv)
> window = Window()
> window.show()
>
> sys.exit(app.exec_())
>
> _______________________________________________
> PyQt mailing list PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>
--
Hugo Léveillé
hugol at fastmail.net
More information about the PyQt
mailing list