Próbuję skonfigurować aplikację, która będzie akceptować pliki havin wrzucone do niej. Tak, szukam sposobu, aby wyodrębnić ścieżkę, gdy zostaną one wkompilowane.PyQt: Pobieranie nazwy pliku dla pliku odrzuconego w aplikacji
W tej chwili mam włączoną funkcję "przeciągnij i upuść" dla właściwej części aplikacji i zaakceptuję tekst wpuszczony, ale robię nie wiem, jak radzić sobie mając plik spadła w
używam.
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)
który jest nieco modyfikacji kodu zawartych w poradniku Drag and Drop in PyQT4.
nie mogłem dostać @ekhumoro odpowiedź do pracy dla mnie, ale to dało mi więcej miejsc patrzeć i znalazłem PyQT4: Drag and drop files into QListWidget co pomogło.
Oprócz sugestii wykonanych przez ekhumoro musiałem zaimplementować akcję przeciągania. Co ja w końcu wykorzystane wyglądało:
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()
myślę 'hasUrls' jest funkcją, więc swoje warunki, które go używają zawsze oceny na' Prawdziwa ' – Cuadue