Thanks alot
On Thu, 09 Sep 2010 14:24 +0100, "Baz Walter" <[email protected]> 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 [email protected] > http://www.riverbankcomputing.com/mailman/listinfo/pyqt > -- Hugo Léveillé [email protected] _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
