TxT2Docx/gui_results.py
2025-09-21 19:01:40 +08:00

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}")