Sto tentando di impostare un'applicazione che accetti i file havin inseriti in essa. Quindi, sto cercando un modo per estrarre il percorso quando vengono rilasciati.PyQt: acquisizione del nome file per il file eliminato nell'app
In questo momento, ho il drag and drop abilitato per la parte destra dell'applicazione, e accetterà il testo lasciato cadere, ma lo faccio non so come gestire avere un file è sceso in
sto usando:.
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)
che è leggermente modificare il codice fornito nel Drag and Drop in PyQT4 tutorial.
non riuscivo a ottenere @ekhumoro risposta a lavorare per me, ma mi ha dato più posti a guardare, e ho trovato PyQT4: Drag and drop files into QListWidget che ha aiutato.
Oltre ai suggerimenti forniti da ekhumoro, era necessario implementare l'evento di spostamento trascinamento. Quello che ho finalmente usato sembrava:
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()
penso 'hasUrls' è una funzione, in modo che le condizioni che lo utilizzano valutare sempre a' Vero ' – Cuadue