将文件从OSX finder拖放到PyQt4应用程序

时间:2015-08-14 00:15:01

标签: python macos qt pyqt pyqt4

我有一个应用程序视图,我正在使用PyQt4,并在QWebView上实现拖放功能。

我有拖放工作,除了当我删除文件夹或文件时,它给了我某种OSX临时文件名(参见/.file/id=6571367.6613253/),而不是实际的名称和位置。我想知道,有没有办法推断 具有完整系统路径的真实目录或文件名,或者最坏情况下,我至少可以对此临时定位器进行操作吗?

我确实在根目录中看到了一个真实的.file文件。

#!/usr/bin/env python
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

    class MainView(QWebView):

        def __init__(self):
            QWebView.__init__(self)
            self.loadFinished.connect(self._result_available)
            self.setAcceptDrops(True)

        def _result_available(self, ok):
            frame = self.page().mainFrame()

        def dragEnterEvent(self, event):
            if event.mimeData().hasUrls:
                event.accept()
            else:
                event.ignore()

        def dragMoveEvent(self, event):
            if event.mimeData().hasUrls:
                event.setDropAction(Qt.CopyAction)
                event.accept()
            else:
                event.ignore()

        def dropEvent(self, event):
            if event.mimeData().hasUrls:
                event.setDropAction(Qt.CopyAction)
                event.accept()
                for url in event.mimeData().urls():
                    print QUrl(url.path())
            else:
                event.ignore()

0 个答案:

没有答案
相关问题