fix: EXE版禁用一键安装拖拽,打包时集成tkinterdnd2

- EXE版(sys.frozen)不显示安装按钮,提示用源码版安装后重新打包
- tkinterdnd2 加入 hidden_imports,打包时自动带上

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-04 21:26:29 +08:00
parent 4f0efcd0c0
commit 6fd14b4e49
2 changed files with 27 additions and 18 deletions
+10 -2
View File
@@ -304,6 +304,8 @@ def _setup_drag_area(mid_container, theme, dnd_supported, log_text, status_bar):
btn_row = tk.Frame(dnd_frame, bg=theme["card_bg"])
btn_row.pack(fill=tk.X)
is_frozen = getattr(sys, 'frozen', False)
def copy_install():
try:
mid_container.winfo_toplevel().clipboard_clear()
@@ -312,8 +314,12 @@ def _setup_drag_area(mid_container, theme, dnd_supported, log_text, status_bar):
except Exception as e:
messagebox.showwarning("复制失败", str(e))
create_modern_button(btn_row, "复制安装命令", copy_install, "primary", px_width=132, px_height=28).pack(side=tk.RIGHT)
if is_frozen:
tk.Label(
btn_row, text="EXE版不支持运行时安装,请用源码版安装后重新打包",
bg=theme["card_bg"], fg="#999999", font=("Microsoft YaHei UI", 8)
).pack(side=tk.RIGHT, padx=4)
else:
def install_and_restart():
try:
add_to_log(log_text, "开始安装拖拽支持库 tkinterdnd2...\n", "info")
@@ -332,6 +338,8 @@ def _setup_drag_area(mid_container, theme, dnd_supported, log_text, status_bar):
create_modern_button(btn_row, "一键安装拖拽", install_and_restart, "primary", px_width=132, px_height=28).pack(side=tk.RIGHT, padx=(3, 0))
create_modern_button(btn_row, "复制安装命令", copy_install, "primary", px_width=132, px_height=28).pack(side=tk.RIGHT)
# 点击拖拽框选择文件
def _click_select(evt=None):
try:
+1
View File
@@ -58,6 +58,7 @@ hidden_imports = [
'xlutils',
'requests',
'dotenv',
'tkinterdnd2',
'configparser',
'threading',
'datetime',