this questionとよく似ています。私はPyQtアプリケーションからOSXファイルシステムに画像をドラッグ&ドロップできます。PyQt 4.xからOSXファイルシステムへのドラッグアンドドロップ
ただし、次のコードを使用すると、ドロップ位置に何も表示されません。
私は非常に近いようです。 mimeData.setData(mimeType, byteArray)
をmimeData.setData("text/plain", selectedImagePath)
に変更すると、ドロップ先で「Untitled Clipping」ファイルが取得されるため、少なくともドラッグアンドドロップ操作が動作していることを確認できます。
def startDrag(self, event):
selectedImagePath = "/sample/specified/file.jpg"
## convert to a bytestream
#
mimeData = QtCore.QMimeData()
image = QtGui.QImage(selectedImagePath)
extension = os.path.splitext(selectedImagePath)[1].strip(".")
mimeType = "image/jpeg" if extension in ["jpeg", "jpg"] else "image/png"
byteArray = QtCore.QByteArray()
bufferTime = QtCore.QBuffer(byteArray)
bufferTime.open(QtCore.QIODevice.WriteOnly)
image.save(bufferTime, extension.upper())
mimeData.setData(mimeType, selectedImagePath)
drag = QtGui.QDrag(self)
drag.setMimeData(mimeData)
result = drag.start(QtCore.Qt.CopyAction)
event.accept()
どこが間違っていますか?
私はまた、ドロップされたメディアの名前を設定する必要があることを知っているので、それについてのガイダンスも高く評価されます。
これを試してみます。あなたは天才です。 – AteYourLembas