""" GUI结果显示模块 提供处理结果显示的图形界面。 """ import os import sys import PySimpleGUI as sg def show_results_window(results): """显示批量处理结果窗口""" if results['failed'] == 0: message = f"全部成功!\n共处理 {results['total']} 个文件,全部转换成功。" if results['main_output_folder']: message += f"\n主要输出文件夹: {results['main_output_folder']}" sg.popup('处理完成', message) else: failed_text = "\n".join([f"- {item['name']}: {item['error']}" for item in results['failed_items']]) message = (f"处理完成!\n共处理 {results['total']} 个文件," f"{results['success']} 个成功,{results['failed']} 个失败。\n\n" f"失败项:\n{failed_text}") if results['main_output_folder']: message += f"\n主要输出文件夹: {results['main_output_folder']}" sg.popup_scrolled('处理完成', message, size=(60, 20)) # 询问是否打开输出文件夹 if results['main_output_folder'] and os.path.exists(results['main_output_folder']): if sg.popup_yes_no('是否打开主要输出文件夹?') == 'Yes': _open_folder(results['main_output_folder']) def _open_folder(folder_path): """打开文件夹""" try: if sys.platform.startswith('win'): os.startfile(folder_path) elif sys.platform.startswith('darwin'): os.system(f'open "{folder_path}"') else: os.system(f'xdg-open "{folder_path}"') except Exception as e: sg.popup_error(f"无法打开文件夹: {e}")