实战:用 Python + PyQt5 打造一款高颜值的汉字转拼音工具
在日常工作和学习中,我们有时会遇到需要将大段汉字或整个文档转换成拼音的需求。虽然市面上有一些在线工具,但往往有字数限制,或者不支持直接导入 Word 文档。今天,我们就来实战用 Python 写一款属于自己的汉字转拼音桌面软件,不仅支持文本粘贴,还支持文件拖拽和一键导出!
欢迎大家关注此公众号,后台留言"python书籍"可免费获取【Python办公自动化高清PDF】电子书一本
此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅
一、准备工作
我们要实现带界面的桌面软件,主要用到以下几个核心库:
- •
PyQt5:用于构建现代化、美观的 GUI 界面。 - •
python-docx:用于解析和读取 .docx 格式的 Word 文档。
安装依赖:
pip install PyQt5 xpinyin python-docx
二、核心功能拆解
这款小工具虽然不大,但五脏俱全,包含了以下几个核心功能点:
1. 现代化 UI 设计
我们使用 PyQt5 搭建了左右分割的布局(QSplitter)。左侧是输入区,右侧是输出区,底部是按钮组和运行日志。为了让界面更好看,我们还专门编写了一套 QSS(类似网页的 CSS)样式表,包括按钮的悬浮变色、输入框的圆角边框等。
2. 支持拖拽的高级文本框
为了提升用户体验,我们重写了 QTextEdit,让它支持文件直接拖拽。
classDropTextEdit(QTextEdit):
# ... 省略部分代码
defdropEvent(self, event: QDropEvent):
if event.mimeData().hasUrls():
for url in event.mimeData().urls():
file_path = url.toLocalFile()
ifself._on_file_drop:
self._on_file_drop(file_path)
event.acceptProposedAction()
当用户把 TXT 或 Word 文件拖进输入框时,程序会自动触发回调读取文件内容并展示出来。
3. 智能读取 TXT 与 DOCX 文件
由于 TXT 文件可能有不同的编码格式(如 UTF-8, GBK 等),我们在读取文件时加入了多编码尝试机制,防止出现乱码。对于 Word 文档,我们借助 python-docx 库提取所有段落的文本内容。
def_read_file_content(self, file_path: str) -> str:
# 自动处理不同编码和不同格式的文本读取...
4. 拼音转换逻辑
核心的转换调用非常简单,强大的 xpinyin 帮我们做好了脏活累活:
from xpinyin import Pinyin
pinyin = Pinyin()
# tone_marks="marks" 表示输出带声调符号的拼音,例如 míng
result = pinyin.get_pinyin(text, tone_marks="marks")
我们将这段逻辑绑定在“转换”按钮的点击事件上,并配合底部的日志框与状态栏提示,实时反馈转换进度和字符统计。
三、运行效果
运行代码后,你会看到一个清爽的界面。你可以随意拖入一篇长篇大论的 Word 文档,点击转换,几乎瞬间就能在右侧看到密密麻麻的带调拼音,而且声调标注得非常准确!最后点击“导出结果”,就能把拼音结果保存到本地文本中了。
四、总结
通过这个实战项目,我们不仅复习了 Python 操作文件和第三方库的知识,还深入体验了 PyQt5 桌面开发的魅力(自定义控件、QSS 样式、信号与槽机制)。有了这个基础,你可以继续为它添加更多功能,比如:多音字手动校对、批量文件夹转换、拼音与汉字上下对照等。
快复制源码在自己的电脑上跑起来试试吧!