我问过 chatGpt 他一直跟我绕圈圈,google 的之后我总觉得代码没啥问题= =,秋指点打醒
问题是我拽文件到 file_label 的时候光标有出现+(拽入功能应该是启用),不知道为什么没有打印
import tkinter as tk
from tkinterdnd2 import TkinterDnD, DND_FILES
views:
# 创建 drop
self.file_label = tk.Label(self.master, text="Drop Files Here", relief=tk.SUNKEN,width=30, height=5)
self.file_label.pack(pady=20)
# 启用拖放功能
self.file_label.drop_target_register(DND_FILES)
self.file_label.dnd_bind('<<Drop>>', self.handle_drop)
def handle_drop(self, event):
# 检查是否为文件拖放事件
print(" on handle_drop!")
if event.data:
file_path = event.data
print(f"文件路径: {file_path}")
self.handle_file(file_path)
else:
print("非文件拖放事件")
-----------
我之前用 windnd 是可以正常运作的,现在想迁移到 linux 接受拽入单独创建个区域
-import windnd
if __name__ == "__main__":
- root =
tk.Tk()
+ root =
TkinterDnD.Tk()
app = ConfigEditor(root)
- windnd.hook_dropfiles(root , func=app.handle_drop)
root.mainloop()