エクスプローラーなどからファイルをドラックアンドドロップしてファイルのパスをコンソールを出力するだけのサンプルスクリプトを動かしてみます。
サンプルスクリプト
# tkinter03.py
# ドラッグアンドドロップのサンプル
# モジュールのインストール
# pip install tkinterdnd2
import os
from tkinter import Tk
from tkinterdnd2 import DND_FILES, TkinterDnD
def drop(event):
path = event.data
print(f"ドロップされたパス: {path}")
root = TkinterDnD.Tk()
root.drop_target_register(DND_FILES)
root.dnd_bind('<<Drop>>', drop)
root.mainloop()
Windows
Windowsでscoopからインストールしたpythonで実行
python --version
Python 3.10.11
tkinterdnd2モジュールが見つからないエラーが発生します。
python tkinter03.py
Traceback (most recent call last):
File "F:\python\tkinter\tkinter03.py", line 12, in
from tkinterdnd2 import DND_FILES, TkinterDnD
ModuleNotFoundError: No module named 'tkinterdnd2'
pipでtkinterdnd2をインストール
pip install tkinterdnd2
Collecting tkinterdnd2
Downloading tkinterdnd2-0.4.2-py3-none-any.whl.metadata (2.7 kB)
Downloading tkinterdnd2-0.4.2-py3-none-any.whl (492 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 492.7/492.7 kB 1.5 MB/s eta 0:00:00
Installing collected packages: tkinterdnd2
Successfully installed tkinterdnd2-0.4.2
Ubuntu22.04
こちらでもtkinterdnd2モジュールが見つからないエラーが発生します。
python tkinter03.py
Traceback (most recent call last):
File "/mnt/f/python/tkinter/tkinter03.py", line 11, in
from tkinterdnd2 import DND_FILES, TkinterDnD
ModuleNotFoundError: No module named 'tkinterdnd2'
pipでtkinterdnd2をインストール
pip install tkinterdnd2
Defaulting to user installation because normal site-packages is not writeable
Collecting tkinterdnd2
Downloading tkinterdnd2-0.4.2-py3-none-any.whl (492 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 492.7/492.7 KB 1.8 MB/s eta 0:00:00
Installing collected packages: tkinterdnd2
Successfully installed tkinterdnd2-0.4.2
感想
今回ドラックアンドドロップをする為にモジュールをインストールをしましたが、WindowsとUbuntuで同じ操作で実行することが出来ました。
Windowsのpythonのscoopでインストールした環境ではpipのみでインストールすることが出来ましたが、pip以外にも別途ファイルをインストールする必要がある場合もあるそうです。
Windowsのpythonのscoopでインストールした環境ではpipのみでインストールすることが出来ましたが、pip以外にも別途ファイルをインストールする必要がある場合もあるそうです。
TkDND - Browse /Windows Binaries/TkDND 2.8 at SourceForge.net
TkDND is an extension that adds native drag & drop capabilities to the Tk toolkit. It can be used with any Tk version eq...
コメント