Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

打字通

一个类似「金山打字通」的桌面打字练习软件,使用 PySide6 (Python + Qt6) 开发。 Qt 底层为编译好的 C++,启动快、内存占用小(约 80MB),界面用 QSS 定制成现代风格。

功能

  • 首页:累计练习概览 + 功能入口
  • 指法练习:屏幕键盘按八指分工着色,实时高亮「下一个键」与「按下的键」
  • 英文打字:单词(简单/进阶/高级三档难度)
  • 汉字打字:显示汉字,通过中文输入法(如微软拼音)逐字录入
  • 数字练习:个位 / 四位数 / 八位数
  • 符号练习:常用符号
  • 打字测试:1 分钟限时 / 自由测试,结束后展示速度(字/分)、WPM、准确率、错字
  • 打字游戏:字母雨,敲击对应字母击落,关卡加速
  • 统计:历史成绩表格 + 近 12 次速度柱状图
  • 设置:明暗主题切换、提示音效开关(设置自动保存)

提示:英文单词、数字、符号之间的空格会自动跳过,无需手动敲空格。

环境要求

  • Windows 10/11
  • Python 3.9+(本项目在 3.11 上开发)

安装与运行

:: 1) 安装依赖(只需一次)
python -m pip install -r requirements.txt

:: 2) 运行
python main.py

或直接双击 run.bat

运行测试

python -m unittest discover -s tests -v

打包成 .exe(可选)

单文件夹模式(推荐,外部 DLL)

python -m pip install pyinstaller
python -m PyInstaller --noconfirm --clean --windowed --name 打字通 --hidden-import winsound main.py
  • 产物在 dist\打字通\,含 打字通.exe + _internal\(Python 运行时、PySide6、Qt 插件 DLL)
  • 分发时需把整个 dist\打字通\ 文件夹一起拷贝(exe 与 _internal 必须同目录)
  • 启动快、稳定,Qt DLL 以外部文件形式存在

单文件模式(全部压进一个 exe)

python -m PyInstaller --noconfirm --clean --windowed --onefile --name 打字通 --hidden-import winsound main.py
  • 生成单个 dist\打字通.exe,运行时解压到临时目录,首次启动稍慢

每次构建都会生成 打字通.spec 构建脚本,可复用;中间的 build\ 目录可安全删除。

项目结构

打字通/
├── main.py                    # 程序入口
├── run.bat                    # 双击运行
├── requirements.txt
├── app/
│   ├── typing_engine.py       # 打字引擎(计时/速度/准确率)
│   ├── content.py             # 练习内容生成
│   ├── stats.py               # 成绩持久化(JSON)
│   ├── settings.py            # 设置持久化(JSON)
│   ├── sound.py               # 系统提示音
│   ├── theme.py               # 主题配色 + QSS
│   ├── keymap.py              # 按键映射
│   ├── passage_view.py        # 打字文本视图
│   ├── on_screen_keyboard.py  # 屏幕键盘
│   ├── main_window.py         # 主窗口
│   └── screens/               # 各页面
└── tests/test_engine.py       # 单元测试

数据存储位置

成绩与设置保存在用户目录:%USERPROFILE%\.typing_tutor\

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages