我試圖設置一個應用程序,將接受放入它的havin文件。所以,我正在尋找一種方法來提取路徑,當它們被放入時。PyQt:獲取文件名稱的文件放在應用程序
現在,我已經爲應用程序的右側部分啓用了拖放功能,並且它會接受放入的文本,但我確實不知道如何處理具有文件在下降
我使用:
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)
這是稍微修改了Drag and Drop in PyQT4教程中提供的代碼。
我不能完全得到@ekhumoro答案爲我工作,但它給了我更多的地方看看,我發現PyQT4: Drag and drop files into QListWidget這幫助。
除了ekhumoro提出的建議,我需要實施拖動事件。我終於用看起來像:
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()
我想'hasUrls'是一個功能,讓使用它的條件始終評估爲真' ' – Cuadue