TxT2Docx/style_save_guide.py
wsb1224 d83e82ab23 更新功能:
段落控制功能,可自定义控制每个段落有多少句话
2025-10-17 13:55:50 +08:00

193 lines
6.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
样式保存问题解决指南
"""
import tkinter as tk
from tkinter import ttk, messagebox
from style_manager import style_manager
def show_save_guide():
"""显示样式保存指南"""
guide_window = tk.Toplevel()
guide_window.title("样式保存问题解决指南")
guide_window.geometry("600x500")
guide_window.resizable(True, True)
# 创建滚动文本区域
text_frame = ttk.Frame(guide_window)
text_frame.pack(fill='both', expand=True, padx=10, pady=10)
# 滚动条
scrollbar = ttk.Scrollbar(text_frame, orient="vertical")
scrollbar.pack(side="right", fill="y")
# 文本区域
text_widget = tk.Text(text_frame, wrap=tk.WORD, yscrollcommand=scrollbar.set,
font=("Microsoft YaHei", 10), padx=10, pady=10)
text_widget.pack(side="left", fill="both", expand=True)
scrollbar.config(command=text_widget.yview)
# 指南内容
guide_content = """
📋 样式保存问题解决指南
如果您遇到"保存样式失败"的错误,请按照以下步骤排查和解决:
🔍 问题诊断
1. 错误信息解读:
"不能覆盖内置样式" - 您使用了系统预设的样式名称
"文件权限问题" - 程序无法写入文件到磁盘
"样式对象结构错误" - 内部数据结构异常
2. 内置样式列表(不能覆盖):
• 爆款文章风格
• 微信公众号风格
• 知乎高赞回答风格
• 小红书笔记风格
• 今日头条新闻风格
• B站UP主视频脚本风格
• 企业微信群通知风格
• 情感鸡汤文风格
✅ 解决方案
一、样式名称问题:
1. 确保样式名称不为空
2. 不要使用上述内置样式名称
3. 建议使用描述性名称,如"我的自定义样式""公司报告样式"
4. 如果要修改内置样式,请使用"另存为"功能
二、文件权限问题:
1. 以管理员身份运行程序
2. 检查程序目录是否有写入权限
3. 确保磁盘空间充足
4. 临时关闭杀毒软件的实时保护
三、系统问题:
1. 重启程序再次尝试
2. 检查是否有其他程序占用文件
3. 更新到最新版本程序
🛠️ 正确的操作步骤
保存样式:
1. 在高级编辑器中修改样式设置
2. 在"基本信息"选项卡中输入样式名称
3. 确保名称不与内置样式重复
4. 点击"保存样式"按钮
5. 等待确认消息
另存为新样式:
1. 在高级编辑器中修改样式设置
2. 点击"另存为"按钮
3. 在弹出对话框中输入新名称
4. 确保名称不重复
5. 点击确定完成保存
📞 获取帮助
如果问题仍然存在:
1. 查看控制台输出的详细错误信息
2. 检查是否有特殊字符在样式名称中
3. 尝试使用简单的英文名称测试
4. 记录具体的错误步骤和错误信息
💡 最佳实践
1. 样式命名规范:
• 使用有意义的描述性名称
• 避免特殊字符和空格
• 建议格式项目_用途_版本"报告_标准_v1"
2. 定期备份:
• 重要样式请导出保存
• 定期备份样式文件夹
3. 测试流程:
• 先用简单名称测试保存功能
• 确认无误后再使用复杂样式
• 修改重要样式前先备份
🔧 技术信息
样式文件位置data/styles/
支持的操作:创建、修改、删除、导入、导出
文件格式JSON格式
编码UTF-8
如果您按照此指南操作仍有问题说明可能存在程序bug
请联系技术支持并提供详细的错误信息。
"""
text_widget.insert("1.0", guide_content)
text_widget.config(state='disabled')
# 底部按钮
button_frame = ttk.Frame(guide_window)
button_frame.pack(fill='x', padx=10, pady=10)
def check_current_styles():
"""检查当前样式状态"""
styles = style_manager.get_style_names()
builtin_count = len(style_manager.builtin_styles)
custom_count = len(style_manager.custom_styles)
info = f"当前样式统计:\n\n"
info += f"内置样式:{builtin_count}\n"
info += f"自定义样式:{custom_count}\n"
info += f"总计:{len(styles)}\n\n"
info += "自定义样式列表:\n"
custom_names = list(style_manager.custom_styles.keys())
if custom_names:
for name in custom_names:
info += f"{name}\n"
else:
info += " (暂无自定义样式)"
messagebox.showinfo("样式状态", info)
def test_save_permission():
"""测试保存权限"""
import os
import tempfile
try:
styles_dir = style_manager.styles_dir
test_file = os.path.join(styles_dir, "permission_test.tmp")
# 测试写入
with open(test_file, 'w', encoding='utf-8') as f:
f.write("permission test")
# 测试读取
with open(test_file, 'r', encoding='utf-8') as f:
content = f.read()
# 清理
os.remove(test_file)
messagebox.showinfo("权限测试", "✅ 文件权限正常\n\n程序可以正常读写样式文件。")
except Exception as e:
error_msg = f"❌ 文件权限异常\n\n错误详情:{str(e)}\n\n"
error_msg += "建议解决方案:\n"
error_msg += "• 以管理员身份运行程序\n"
error_msg += "• 检查磁盘空间是否充足\n"
error_msg += "• 确认杀毒软件未阻止文件操作"
messagebox.showerror("权限测试失败", error_msg)
ttk.Button(button_frame, text="检查当前样式", command=check_current_styles).pack(side='left', padx=5)
ttk.Button(button_frame, text="测试保存权限", command=test_save_permission).pack(side='left', padx=5)
ttk.Button(button_frame, text="关闭", command=guide_window.destroy).pack(side='right', padx=5)
def main():
"""主函数 - 独立运行指南"""
root = tk.Tk()
root.withdraw() # 隐藏主窗口
show_save_guide()
root.mainloop()
if __name__ == '__main__':
main()