Skip to main content

TkinterDnD2 is a python wrapper for George Petasis'' tkDnD Tk extension version 2

Project description

fork

This is fork of tkinterdnd2 which is a python wrapper for tkdnd .

major changes

⭐️Update all platform libtkdnd runtime 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 files

this repo forked and edited to be published to pypi so one could simply install this package with pip install tkinterdnd2-universal.

install

pip install tkinterdnd2-universal

usage

import tkinter as tk

from tkinterdnd2 import DND_FILES, TkinterDnD

root = 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 target
lb.drop_target_register(DND_FILES)
lb.dnd_bind('<<Drop>>', lambda e: lb.insert(tk.END, e.data))

lb.pack()
root.mainloop()

tkinterdnd2 example usage

see any of the demos for usage examples.

tkinterdnd2

Tkinter native drag and drop support for windows, unix and Mac OSX, both x86_64 and arm64.

What is TkInterDnD2

TkinterDnD2 is a python wrapper for George Petasis' tkDnD Tk extension version 2.

It is a domain public project.

What is TkDnD2

tkDnD is a tcl/Tk extension adding native drag and drop support.

What this repository is about

It 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 of tkDnD repository and copy them into tkinterdnd2/tkdnd. The libraries used in this project are based on the latest version of tkdnd, which is 2.9.3.

pyinstaller

If you want to use pyinstaller, you should use the hook-tkinterdnd2.py ( you can find this file here ) file included. Copy it in the base directory of your project, then:

pyinstaller -F -w myproject/myproject.py --additional-hooks-dir=.

Thanks

petasis/tkdnd

pmgagne/tkinterdnd2

Eliav2/tkinterdnd2

@TransparentLC help on hook file for pyinstaller

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tkinterdnd2-universal-1.7.3.tar.gz (363.4 kB view hashes)

Uploaded Source

Built Distribution

tkinterdnd2_universal-1.7.3-py3-none-any.whl (404.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page