質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

13008閲覧

Python3 Tkinter ドラッグアンドドロップ用のライブラリでエラーが起こる

person

総合スコア223

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2020/09/10 01:06

Tkinterでドラッグアンドドロップの機能を使いたいので、
python tkinterでドラッグアンドドロップ

を参考に、TkinterDnD2というのをダウンロードして

test
├ main.py   ・・・上記サイトのソースコード
└ TkinterDnD2 ・・・ダウンロードしたやつ

これでmain.pyを実行したところ、次のようなエラーが出ました。

これって他にインストールが必要なのでしょうか?
それともダウンロードしたソースコードかmain.pyに問題があるのでしょうか?

PS C:\Users\USER> & python c:/Users/USER/Desktop/test/dnd.py Traceback (most recent call last): File "c:\Users\USER\Desktop\test\TkinterDnD2\TkinterDnD.py", line 39, in _require TkdndVersion = tkroot.tk.call('package', 'require', 'tkdnd') _tkinter.TclError: can't find package tkdnd During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:/Users/USER/Desktop/test/dnd.py", line 15, in <module> root = TkinterDnD.Tk() File "c:\Users\USER\Desktop\test\TkinterDnD2\TkinterDnD.py", line 271, in __init__ self.TkdndVersion = _require(self) File "c:\Users\USER\Desktop\test\TkinterDnD2\TkinterDnD.py", line 41, in _require raise RuntimeError('Unable to load tkdnd library.') RuntimeError: Unable to load tkdnd library.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

tkinterdnd2をインストールすれば、

のリンク先より

If you want to use TkinterDnD2 you will of course have to install tkDnD2 first. Windows binaries as well as the sources can be found here.

TkinterDnD2 は tkDnD2 を tkinter で使う為のライブラリなので、
tkDnD2 (tcl/tkのライブラリ) を先にインストールする必要があります。
これはTkinterDnD2 には含まれていません。

インストール済みのはずがエラーとなる場合は、
ファイル・ディレクトリ構成を見直すか、
環境変数 TKDND_LIBRARY を ライブラリのある場所に設定して見て下さい。
※ 上記の説明にあるのは、Windowsの場合です。プラットフォームにより異なるバイナリーが必要です。

投稿2020/09/10 04:43

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

person

2020/09/10 05:42

回答ありがとうございます。 TkinterDnD2とtkDnD2が同じものだと思っていましたが、違ってました。 http://blawat2015.no-ip.com/~mieki256/diary/201506184.html を参考に、TkDnD2.8というのをダウンロードして、tkdndという名称で C:\Users\USER\AppData\Local\Programs\Python\Python38-32\tcl\tkdnd に配置しました。 エラーメッセージが次のようになりました。 PS C:\Users\USER> & python c:/Users/USER/Desktop/test/dnd.py Traceback (most recent call last): File "c:/Users/USER/Desktop/test/dnd.py", line 19, in <module> root.dnd_bind('<>', drop) File "c:\Users\USER\Desktop\test\TkinterDnD2\TkinterDnD.py", line 163, in dnd_bind return self._dnd_bind(('bind', self._w), sequence, func, add) File "c:\Users\USER\Desktop\test\TkinterDnD2\TkinterDnD.py", line 141, in _dnd_bind self.tk.call(what + (sequence, cmd)) _tkinter.TclError: no event type or button # or keysym TkinterDnD2とtkDnD2はそれぞれ(多分)適切な場所に配置したはずですが、まだライブラリ不足でしょうか?
teamikl

2020/09/10 13:48

コードは験せてませんが、目につく問題点は '<>' となっている部分は '<<Drop>>' です。 恐らく、HTMLに掲載した時のエスケープ忘れで見えなくなってるのでしょう。
person

2020/09/11 10:13

<<Drop>> に変更したらできました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問