Я пытаюсь настроить приложение, которое будет принимать файлы 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