tkinterdnd2 0.6.1__tar.gz → 0.6.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/PKG-INFO +15 -4
  2. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/README.md +14 -3
  3. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/setup.py +1 -1
  4. tkinterdnd2-0.6.2/tkinterdnd2/tkdnd/linux-arm64/libtkdnd2.10.1.so +0 -0
  5. tkinterdnd2-0.6.2/tkinterdnd2/tkdnd/linux-arm64-tcl9/libtcl9tkdnd2.10.1.so +0 -0
  6. tkinterdnd2-0.6.2/tkinterdnd2/tkdnd/linux-x64/libtkdnd2.10.1.so +0 -0
  7. tkinterdnd2-0.6.2/tkinterdnd2/tkdnd/linux-x64-tcl9/libtcl9tkdnd2.10.1.so +0 -0
  8. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2.egg-info/PKG-INFO +15 -4
  9. tkinterdnd2-0.6.1/tkinterdnd2/tkdnd/linux-arm64/libtkdnd2.10.1.so +0 -0
  10. tkinterdnd2-0.6.1/tkinterdnd2/tkdnd/linux-arm64-tcl9/libtcl9tkdnd2.10.1.so +0 -0
  11. tkinterdnd2-0.6.1/tkinterdnd2/tkdnd/linux-x64/libtkdnd2.10.1.so +0 -0
  12. tkinterdnd2-0.6.1/tkinterdnd2/tkdnd/linux-x64-tcl9/libtcl9tkdnd2.10.1.so +0 -0
  13. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/LICENSE +0 -0
  14. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/setup.cfg +0 -0
  15. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tests/test_tkinterdnd2.py +0 -0
  16. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/TkinterDnD.py +0 -0
  17. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/__init__.py +0 -0
  18. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/pkgIndex.tcl +0 -0
  19. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd.tcl +0 -0
  20. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd_compat.tcl +0 -0
  21. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd_generic.tcl +0 -0
  22. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd_macosx.tcl +0 -0
  23. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd_unix.tcl +0 -0
  24. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd_utils.tcl +0 -0
  25. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64/tkdnd_windows.tcl +0 -0
  26. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/pkgIndex.tcl +0 -0
  27. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd.tcl +0 -0
  28. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd_compat.tcl +0 -0
  29. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd_generic.tcl +0 -0
  30. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd_macosx.tcl +0 -0
  31. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd_unix.tcl +0 -0
  32. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd_utils.tcl +0 -0
  33. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-arm64-tcl9/tkdnd_windows.tcl +0 -0
  34. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/pkgIndex.tcl +0 -0
  35. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd.tcl +0 -0
  36. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd_compat.tcl +0 -0
  37. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd_generic.tcl +0 -0
  38. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd_macosx.tcl +0 -0
  39. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd_unix.tcl +0 -0
  40. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd_utils.tcl +0 -0
  41. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64/tkdnd_windows.tcl +0 -0
  42. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/pkgIndex.tcl +0 -0
  43. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd.tcl +0 -0
  44. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd_compat.tcl +0 -0
  45. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd_generic.tcl +0 -0
  46. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd_macosx.tcl +0 -0
  47. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd_unix.tcl +0 -0
  48. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd_utils.tcl +0 -0
  49. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/linux-x64-tcl9/tkdnd_windows.tcl +0 -0
  50. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/libtkdnd2.10.1.dylib +0 -0
  51. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/pkgIndex.tcl +0 -0
  52. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd.tcl +0 -0
  53. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd_compat.tcl +0 -0
  54. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd_generic.tcl +0 -0
  55. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd_macosx.tcl +0 -0
  56. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd_unix.tcl +0 -0
  57. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd_utils.tcl +0 -0
  58. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64/tkdnd_windows.tcl +0 -0
  59. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/libtcl9tkdnd2.10.1.dylib +0 -0
  60. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/pkgIndex.tcl +0 -0
  61. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd.tcl +0 -0
  62. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd_compat.tcl +0 -0
  63. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd_generic.tcl +0 -0
  64. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd_macosx.tcl +0 -0
  65. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd_unix.tcl +0 -0
  66. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd_utils.tcl +0 -0
  67. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-arm64-tcl9/tkdnd_windows.tcl +0 -0
  68. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/libtkdnd2.9.4.dylib +0 -0
  69. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/pkgIndex.tcl +0 -0
  70. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd.tcl +0 -0
  71. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd_compat.tcl +0 -0
  72. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd_generic.tcl +0 -0
  73. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd_macosx.tcl +0 -0
  74. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd_unix.tcl +0 -0
  75. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd_utils.tcl +0 -0
  76. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/osx-x64/tkdnd_windows.tcl +0 -0
  77. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/libtkdnd2.10.1.dll +0 -0
  78. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/pkgIndex.tcl +0 -0
  79. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd.tcl +0 -0
  80. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd2.10.1.lib +0 -0
  81. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd_compat.tcl +0 -0
  82. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd_generic.tcl +0 -0
  83. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd_macosx.tcl +0 -0
  84. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd_unix.tcl +0 -0
  85. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd_utils.tcl +0 -0
  86. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-arm64/tkdnd_windows.tcl +0 -0
  87. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/libtkdnd2.10.1.dll +0 -0
  88. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/pkgIndex.tcl +0 -0
  89. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd.tcl +0 -0
  90. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd2.10.1.lib +0 -0
  91. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd_compat.tcl +0 -0
  92. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd_generic.tcl +0 -0
  93. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd_macosx.tcl +0 -0
  94. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd_unix.tcl +0 -0
  95. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd_utils.tcl +0 -0
  96. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64/tkdnd_windows.tcl +0 -0
  97. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/libtkdnd2.10.1.dll +0 -0
  98. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/pkgIndex.tcl +0 -0
  99. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd.tcl +0 -0
  100. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd2.10.1.lib +0 -0
  101. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_compat.tcl +0 -0
  102. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_generic.tcl +0 -0
  103. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_macosx.tcl +0 -0
  104. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_unix.tcl +0 -0
  105. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_utils.tcl +0 -0
  106. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_windows.tcl +0 -0
  107. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/libtkdnd2.10.1.dll +0 -0
  108. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/pkgIndex.tcl +0 -0
  109. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd.tcl +0 -0
  110. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd2.10.1.lib +0 -0
  111. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd_compat.tcl +0 -0
  112. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd_generic.tcl +0 -0
  113. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd_macosx.tcl +0 -0
  114. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd_unix.tcl +0 -0
  115. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd_utils.tcl +0 -0
  116. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86/tkdnd_windows.tcl +0 -0
  117. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/libtkdnd2.10.1.dll +0 -0
  118. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/pkgIndex.tcl +0 -0
  119. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd.tcl +0 -0
  120. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd2.10.1.lib +0 -0
  121. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_compat.tcl +0 -0
  122. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_generic.tcl +0 -0
  123. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_macosx.tcl +0 -0
  124. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_unix.tcl +0 -0
  125. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_utils.tcl +0 -0
  126. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_windows.tcl +0 -0
  127. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2.egg-info/SOURCES.txt +0 -0
  128. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2.egg-info/dependency_links.txt +0 -0
  129. {tkinterdnd2-0.6.1 → tkinterdnd2-0.6.2}/tkinterdnd2.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tkinterdnd2
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: TkinterDnD2 is a python wrapper for George Petasis'' tkDnD Tk extension version 2
5
5
  Home-page: https://github.com/Eliav2/tkinterdnd2
6
6
  Author: petasis\pmgagne\eliav2\squiblydoo
@@ -51,15 +51,22 @@ root = TkinterDnD.Tk() # notice - use this instead of tk.Tk()
51
51
  lb = tk.Listbox(root)
52
52
  lb.insert(1, "drag files to here")
53
53
 
54
+ def on_drop(event):
55
+ # event.data is a raw Tcl list string, not a Python list - see note below
56
+ for path in root.tk.splitlist(event.data):
57
+ lb.insert(tk.END, path)
58
+
54
59
  # register the listbox as a drop target
55
60
  lb.drop_target_register(DND_FILES)
56
- lb.dnd_bind('<<Drop>>', lambda e: lb.insert(tk.END, e.data))
61
+ lb.dnd_bind('<<Drop>>', on_drop)
57
62
 
58
63
  lb.pack()
59
64
  root.mainloop()
60
65
  ```
61
66
  ![tkinterdnd2 example usage](https://i.stack.imgur.com/jnOWd.png)
62
67
 
68
+ > [!NOTE]
69
+ > `event.data` is a raw Tcl list, not a Python list or plain string. When multiple files are dropped, their paths come back space-separated in a single string, and any path containing a space is wrapped in `{braces}` so it can still be told apart from the others. Use `root.tk.splitlist(event.data)` (as above) to get a clean Python list of paths — don't split the string yourself, since that will break on braced/spaced paths.
63
70
 
64
71
  see any of the [demos](./demos) for usage examples.
65
72
 
@@ -76,7 +83,9 @@ import PySimpleGUI as sg
76
83
  from tkinterdnd2 import TkinterDnD, DND_FILES
77
84
 
78
85
  def on_drop(event):
79
- window["-FILE-"].update(event.data)
86
+ # event.data is a raw Tcl list; use splitlist to handle multiple/spaced paths, see note above
87
+ files = window.TKroot.tk.splitlist(event.data)
88
+ window["-FILE-"].update(files[0])
80
89
 
81
90
  layout = [
82
91
  [sg.Text("Drag & Drop a File Here")],
@@ -108,8 +117,10 @@ import customtkinter as ctk
108
117
  from tkinterdnd2 import TkinterDnD, DND_FILES
109
118
 
110
119
  def on_drop(event):
120
+ # event.data is a raw Tcl list; use splitlist to handle multiple/spaced paths, see note above
121
+ files = app.tk.splitlist(event.data)
111
122
  entry.delete(0, "end")
112
- entry.insert(0, event.data)
123
+ entry.insert(0, files[0])
113
124
 
114
125
  app = ctk.CTk()
115
126
  app.title("File Drop")
@@ -30,15 +30,22 @@ root = TkinterDnD.Tk() # notice - use this instead of tk.Tk()
30
30
  lb = tk.Listbox(root)
31
31
  lb.insert(1, "drag files to here")
32
32
 
33
+ def on_drop(event):
34
+ # event.data is a raw Tcl list string, not a Python list - see note below
35
+ for path in root.tk.splitlist(event.data):
36
+ lb.insert(tk.END, path)
37
+
33
38
  # register the listbox as a drop target
34
39
  lb.drop_target_register(DND_FILES)
35
- lb.dnd_bind('<<Drop>>', lambda e: lb.insert(tk.END, e.data))
40
+ lb.dnd_bind('<<Drop>>', on_drop)
36
41
 
37
42
  lb.pack()
38
43
  root.mainloop()
39
44
  ```
40
45
  ![tkinterdnd2 example usage](https://i.stack.imgur.com/jnOWd.png)
41
46
 
47
+ > [!NOTE]
48
+ > `event.data` is a raw Tcl list, not a Python list or plain string. When multiple files are dropped, their paths come back space-separated in a single string, and any path containing a space is wrapped in `{braces}` so it can still be told apart from the others. Use `root.tk.splitlist(event.data)` (as above) to get a clean Python list of paths — don't split the string yourself, since that will break on braced/spaced paths.
42
49
 
43
50
  see any of the [demos](./demos) for usage examples.
44
51
 
@@ -55,7 +62,9 @@ import PySimpleGUI as sg
55
62
  from tkinterdnd2 import TkinterDnD, DND_FILES
56
63
 
57
64
  def on_drop(event):
58
- window["-FILE-"].update(event.data)
65
+ # event.data is a raw Tcl list; use splitlist to handle multiple/spaced paths, see note above
66
+ files = window.TKroot.tk.splitlist(event.data)
67
+ window["-FILE-"].update(files[0])
59
68
 
60
69
  layout = [
61
70
  [sg.Text("Drag & Drop a File Here")],
@@ -87,8 +96,10 @@ import customtkinter as ctk
87
96
  from tkinterdnd2 import TkinterDnD, DND_FILES
88
97
 
89
98
  def on_drop(event):
99
+ # event.data is a raw Tcl list; use splitlist to handle multiple/spaced paths, see note above
100
+ files = app.tk.splitlist(event.data)
90
101
  entry.delete(0, "end")
91
- entry.insert(0, event.data)
102
+ entry.insert(0, files[0])
92
103
 
93
104
  app = ctk.CTk()
94
105
  app.title("File Drop")
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="tkinterdnd2",
8
- version="0.6.1",
8
+ version="0.6.2",
9
9
  author="petasis\\pmgagne\\eliav2\\squiblydoo",
10
10
  description="TkinterDnD2 is a python wrapper for George Petasis'' tkDnD Tk extension version 2",
11
11
  long_description=long_description,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tkinterdnd2
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: TkinterDnD2 is a python wrapper for George Petasis'' tkDnD Tk extension version 2
5
5
  Home-page: https://github.com/Eliav2/tkinterdnd2
6
6
  Author: petasis\pmgagne\eliav2\squiblydoo
@@ -51,15 +51,22 @@ root = TkinterDnD.Tk() # notice - use this instead of tk.Tk()
51
51
  lb = tk.Listbox(root)
52
52
  lb.insert(1, "drag files to here")
53
53
 
54
+ def on_drop(event):
55
+ # event.data is a raw Tcl list string, not a Python list - see note below
56
+ for path in root.tk.splitlist(event.data):
57
+ lb.insert(tk.END, path)
58
+
54
59
  # register the listbox as a drop target
55
60
  lb.drop_target_register(DND_FILES)
56
- lb.dnd_bind('<<Drop>>', lambda e: lb.insert(tk.END, e.data))
61
+ lb.dnd_bind('<<Drop>>', on_drop)
57
62
 
58
63
  lb.pack()
59
64
  root.mainloop()
60
65
  ```
61
66
  ![tkinterdnd2 example usage](https://i.stack.imgur.com/jnOWd.png)
62
67
 
68
+ > [!NOTE]
69
+ > `event.data` is a raw Tcl list, not a Python list or plain string. When multiple files are dropped, their paths come back space-separated in a single string, and any path containing a space is wrapped in `{braces}` so it can still be told apart from the others. Use `root.tk.splitlist(event.data)` (as above) to get a clean Python list of paths — don't split the string yourself, since that will break on braced/spaced paths.
63
70
 
64
71
  see any of the [demos](./demos) for usage examples.
65
72
 
@@ -76,7 +83,9 @@ import PySimpleGUI as sg
76
83
  from tkinterdnd2 import TkinterDnD, DND_FILES
77
84
 
78
85
  def on_drop(event):
79
- window["-FILE-"].update(event.data)
86
+ # event.data is a raw Tcl list; use splitlist to handle multiple/spaced paths, see note above
87
+ files = window.TKroot.tk.splitlist(event.data)
88
+ window["-FILE-"].update(files[0])
80
89
 
81
90
  layout = [
82
91
  [sg.Text("Drag & Drop a File Here")],
@@ -108,8 +117,10 @@ import customtkinter as ctk
108
117
  from tkinterdnd2 import TkinterDnD, DND_FILES
109
118
 
110
119
  def on_drop(event):
120
+ # event.data is a raw Tcl list; use splitlist to handle multiple/spaced paths, see note above
121
+ files = app.tk.splitlist(event.data)
111
122
  entry.delete(0, "end")
112
- entry.insert(0, event.data)
123
+ entry.insert(0, files[0])
113
124
 
114
125
  app = ctk.CTk()
115
126
  app.title("File Drop")
File without changes
File without changes