Package: tkinterdnd2-universal
forkThis is fork oftkinterdnd2which is a python wrapper fortkdnd.major changes⭐️Update all platformlibtkdndruntime files to the latest version, 2.9.3.⭐️Add support for Apple Silicon macOS (arm64), Linux on ARM and Windows on ARM.tkdnd
├── linux-arm64
│   ├── libtkdnd2.9.3.so
│   ├── pkgIndex.tcl
│   ├── tkdnd.tcl
│   ├── tkdnd_compat.tcl
│   ├── tkdnd_generic.tcl
│   ├── tkdnd_macosx.tcl
│   ├── tkdnd_unix.tcl
│   ├── tkdnd_utils.tcl
│   └── tkdnd_windows.tcl
├── linux-x64
│   ├── libtkdnd2.9.3.so
│   ├── pkgIndex.tcl
│   ├── tkdnd.tcl
│   ├── tkdnd_compat.tcl
│   ├── tkdnd_generic.tcl
│   ├── tkdnd_macosx.tcl
│   ├── tkdnd_unix.tcl
│   ├── tkdnd_utils.tcl
│   └── tkdnd_windows.tcl
├── osx-arm64
│   ├── libtkdnd2.9.3.dylib
│   ├── pkgIndex.tcl
│   ├── tkdnd.tcl
│   ├── tkdnd_compat.tcl
│   ├── tkdnd_generic.tcl
│   ├── tkdnd_macosx.tcl
│   ├── tkdnd_unix.tcl
│   ├── tkdnd_utils.tcl
│   └── tkdnd_windows.tcl
├── osx-x64
│   ├── libtkdnd2.9.3.dylib
│   ├── pkgIndex.tcl
│   ├── tkdnd.tcl
│   ├── tkdnd_compat.tcl
│   ├── tkdnd_generic.tcl
│   ├── tkdnd_macosx.tcl
│   ├── tkdnd_unix.tcl
│   ├── tkdnd_utils.tcl
│   └── tkdnd_windows.tcl
├── win-arm64
│   ├── libtkdnd2.9.3.dll
│   ├── pkgIndex.tcl
│   ├── tkdnd.tcl
│   ├── tkdnd2.9.3.lib
│   ├── tkdnd_compat.tcl
│   ├── tkdnd_generic.tcl
│   ├── tkdnd_macosx.tcl
│   ├── tkdnd_unix.tcl
│   ├── tkdnd_utils.tcl
│   └── tkdnd_windows.tcl
└── win-x64
    ├── libtkdnd2.9.3.dll
    ├── pkgIndex.tcl
    ├── tkdnd.tcl
    ├── tkdnd2.9.3.lib
    ├── tkdnd_compat.tcl
    ├── tkdnd_generic.tcl
    ├── tkdnd_macosx.tcl
    ├── tkdnd_unix.tcl
    ├── tkdnd_utils.tcl
    └── tkdnd_windows.tcl

7 directories, 56 filesthis repo forked and edited to be published to pypi so one could simply install this package
withpip install tkinterdnd2-universal.installpip install tkinterdnd2-universalusageimporttkinterastkfromtkinterdnd2importDND_FILES,TkinterDnDroot=TkinterDnD.Tk()# notice - use this instead of tk.Tk()lb=tk.Listbox(root)lb.insert(1,"drag files to here")# register the listbox as a drop targetlb.drop_target_register(DND_FILES)lb.dnd_bind('<<Drop>>',lambdae:lb.insert(tk.END,e.data))lb.pack()root.mainloop()see any of thedemosfor usage examples.tkinterdnd2Tkinter native drag and drop support for windows, unix and Mac OSX, both x86_64 and arm64.What is TkInterDnD2TkinterDnD2is a python wrapper for George Petasis' tkDnD Tk extension version 2.It is a domain public project.What is TkDnD2tkDnDis a tcl/Tk extension adding native drag and drop support.What this repository is aboutIt package TkinterDnD2 and tkdnd2 into a standard python module.When the extension is imported in python its location will be automatically added to the Tk search path.In this project we made pre-compiled libraries from the source code oftkDnDrepository and copy them intotkinterdnd2/tkdnd. The libraries used in this project are based on the latest version of tkdnd, which is 2.9.3.pyinstallerIf you want to use pyinstaller, you should use thehook-tkinterdnd2.py( you can find this filehere) file included. Copy it in the base directory of
your project, then:pyinstaller -F -w myproject/myproject.py --additional-hooks-dir=.Thankspetasis/tkdndpmgagne/tkinterdnd2Eliav2/tkinterdnd2@TransparentLChelp on hook file for pyinstaller