from tkinter import * from tkinter import ttk, filedialog, messagebox import os import re import subprocess as sp import sys # 使用原生的Tk替代TkinterDnD的Tk root = Tk() frm = ttk.Frame(root, padding=10) frm.grid() folder_path = '' # 1. 拖拽事件触发区域(改为文件夹选择按钮) def select_folder(): global folder_path folder_path = filedialog.askdirectory() if folder_path: path_listbox.insert(END, folder_path) log_text.insert(END, f"添加文件夹: {folder_path}\n") folder_button = ttk.Button(frm, text="选择文件夹", command=select_folder) folder_button.grid(column=0, row=0, columnspan=3) # 2. 文件和文件夹路径的列表 path_listbox = Listbox(frm, height=10, width=50) path_listbox.grid(column=0, row=1, columnspan=3) # 3. 进度条 progress = ttk.Progressbar(frm, orient=HORIZONTAL, length=400, mode='determinate') progress.grid(column=0, row=2, columnspan=3) # 4. 日志输出窗口 log_text = Text(frm, height=10, width=50) log_text.grid(column=0, row=3, columnspan=3) def start_conversion(): # 开始转换的逻辑 log_text.insert(END, "开始转换...\n") progress['value'] = 0 for i in range(100): progress['value'] += 1 root.update_idletasks() time.sleep(0.05) # 模拟转换进度 log_text.insert(END, "转换完成\n") global folder_path list = os.listdir(folder_path) # 列出文件夹下所有的目录与文件 for i in range(0, len(list)): print("----------------------------") path = os.path.join(args[1], list[i]) if os.path.isfile(path): print("FileName: " + list[i]) matcher1 = re.search(pattern2, list[i]) if matcher1 != None: # get_image_from_video(args[1], list[i]) conver_video(args[1], list[i]) # 5. 按钮 ttk.Button(frm, text="开始转换", command=start_conversion).grid(column=1, row=4) ttk.Button(frm, text="关闭", command=root.destroy).grid(column=2, row=4) root.mainloop()