havinファイルを受け入れるアプリケーションをセットアップしようとしています。だから、私は彼らがドロップされたときにパスを抽出する方法を探しています。PyQt:ファイルのファイル名を取得するアプリケーションに落ちた
今、私はドラッグアンドドロップアプリケーションの右側の部分を有効にし、ドロップされたテキストを受け入れますが、私はないファイルがで落とした扱い方を知っている
を私は使用しています:。少しDrag and Drop in PyQT4チュートリアルで提供されているコードを変更している
def PTE_dragEnterEvent(self, e):
if e.mimeData().hasFormat('text/plain'):
e.accept()
else:
e.ignore()
def PTE_dropEvent(self, e):
newText = self.ui.fileListPTE.toPlainText() + '\n\n' + e.mimeData().text()
self.ui.fileListPTE.setPlainText(newText)
を。
私はかなり私のために働くために@ekhumoro答えを得ることができませんでしたが、それは私に見てより多くの場所を与えた、と私は助けPyQT4: Drag and drop files into QListWidgetを発見しました。
ekhumoroの提案に加えて、ドラッグ移動イベントを実装する必要がありました。 QMimeData
クラスはdropped urls
に対処するためのメソッドを持ってい
def dragEnterEvent(self, event):
if event.mimeData().hasUrls:
event.accept()
else:
event.ignore()
def dragMoveEvent(self, event):
if event.mimeData().hasUrls:
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
else:
event.ignore()
def dropEvent(self, event):
if event.mimeData().hasUrls:
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
newText = self.ui.fileListPTE.toPlainText()
for url in event.mimeData().urls():
newText += '\n' + str(url.toLocalFile())
self.ui.fileListPTE.setPlainText(newText)
self.emit(QtCore.SIGNAL("dropped"))
else:
event.ignore()
私はそれを使用するあなたの条件は常にtrue 'に評価' hasUrls'が関数である、そう思う私は最終的に使用することのように見えました' – Cuadue