回答編集履歴

4

補足

2020/07/18 11:48

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
 
56
56
 
57
- ※ ttk=0 の部分に True を渡しています。ここはtkdnd.py側で修正済であれば適宜対処。
57
+ drop_target_registerのttk=0 の部分に True を渡しています。ここはtkdnd.py側で修正済であれば適宜対処。
58
58
 
59
59
 
60
60
 

3

修正点についてあいまいな点を補足

2020/07/18 11:47

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -54,6 +54,10 @@
54
54
 
55
55
 
56
56
 
57
+ ※ ttk=0 の部分に True を渡しています。ここはtkdnd.py側で修正済であれば適宜対処。
58
+
59
+
60
+
57
61
  ```python
58
62
 
59
63
  #!/usr/bin/env python3.7
@@ -86,7 +90,7 @@
86
90
 
87
91
  note = ttk.Notebook(root)
88
92
 
89
- note.drop_target_register(True, tkdnd.DND_FILES)
93
+ note.drop_target_register(True, tkdnd.DND_FILES) # XXX
90
94
 
91
95
  note.dnd_bind('<<Drop>>', drop)
92
96
 

2

ttk.Notebookドロップ確認用のコードを追加

2020/07/18 11:46

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -34,12 +34,6 @@
34
34
 
35
35
 
36
36
 
37
-
38
-
39
- ```
40
-
41
-
42
-
43
37
  ----
44
38
 
45
39
  ※ 但し、dnd_test_ttk.py だけでドロップ出来ないという現象は、上記のコードからは確認できません。
@@ -51,3 +45,67 @@
51
45
  DND_FILES, DND_TEXT はこのコードでは未定義の変数でエラーになるはずですが、
52
46
 
53
47
  他に、投稿の際に編集したということはありませんか?
48
+
49
+
50
+
51
+ ----
52
+
53
+ 追記: ttk.Notebook でのドロップ確認用のコード
54
+
55
+
56
+
57
+ ```python
58
+
59
+ #!/usr/bin/env python3.7
60
+
61
+
62
+
63
+ import sys
64
+
65
+ from tkinter import *
66
+
67
+ from tkinter import ttk
68
+
69
+
70
+
71
+ import tkdnd
72
+
73
+
74
+
75
+ def drop(event):
76
+
77
+ print(event.data)
78
+
79
+
80
+
81
+ root = tkdnd.Tk()
82
+
83
+ root.geometry("400x400")
84
+
85
+
86
+
87
+ note = ttk.Notebook(root)
88
+
89
+ note.drop_target_register(True, tkdnd.DND_FILES)
90
+
91
+ note.dnd_bind('<<Drop>>', drop)
92
+
93
+ note.pack(fill=BOTH, expand=True)
94
+
95
+
96
+
97
+ frame = ttk.Frame(note)
98
+
99
+ note.add(frame, text="Page1")
100
+
101
+
102
+
103
+ button = ttk.Button(note, text="OK")
104
+
105
+ note.add(button, text="Page1")
106
+
107
+
108
+
109
+ root.mainloop()
110
+
111
+ ```

1

文章の修正

2020/07/18 11:30

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  上記の tkdnd.py を使うとどちらのコードもファイルのドロップは出来ず、
12
12
 
13
- 公式?(リンク先からダウンロード) の TkinterDnD2 では、ttk で利用できました。
13
+ 公式?(リンク先からダウンロード) の TkinterDnD2 では、ttk で利用できました。
14
14
 
15
15
 
16
16
 
@@ -26,9 +26,17 @@
26
26
 
27
27
 
28
28
 
29
- DND_FILES が ttk 引数に入ってしまい、dndtypes に渡ない。
29
+ 原因: DND_FILES が ttk 引数に入ってしまい、dndtypes に渡っていない。
30
+
31
+
30
32
 
31
33
  DND_TEXT は有効そうなので、テキストのドロップは出来ました。
34
+
35
+
36
+
37
+
38
+
39
+ ```
32
40
 
33
41
 
34
42