[M1 Mac, Monterey 12.6.3, Python 3.10.4]
PyQt6ではQLineEdit(FLTKにおけるFl_Input)にドラッグ&ドロップできるようにするには、QLineEditを継承したクラスを別途作成する必要があります。
機能が簡素なFLTKでもドラッグ&ドロップは標準装備されているのでこれは意外です。
from PyQt6.QtWidgets import QLineEdit
class MyLineEdit(QLineEdit):
def __init__(self, parent=None):
super().__init__(parent)
self.setDragEnabled(True)
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
if event.mimeData().hasUrls():
event.accept()
else:
event.ignore()
def dropEvent(self, event):
if event.mimeData().hasUrls():
for url in event.mimeData().urls():
file_path = url.toLocalFile()
self.setText(file_path)
event.accept()
else:
event.ignore()