44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
"""
|
|
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}") |