专为小鹤双拼设计的中文打字练习软件,帮助用户系统地学习和熟练小鹤双拼输入方案。
小鹤打字通 是一款基于 Qt 框架开发的桌面打字练习应用,版本 1.0.0,于 2022 年 12 月发布。
软件采用用户账户体系,可以保存每位用户的个人偏好设置;支持从剪贴板或本地文本文件导入练习内容;在打字过程中实时显示用时、速度、错字数和回改次数;并通过屏幕上的键盘示意图高亮提示下一个字所需按下的按键,帮助用户逐步建立小鹤双拼的肌肉记忆。
双拼是一种汉语拼音输入方案,将每个汉字的声母和韵母各用一个按键表示,因此每个汉字只需按 2 个键即可完成输入,相比全拼大幅减少击键次数。
小鹤双拼(flypy)是目前流行的双拼方案之一,其键位布局经过精心设计,兼顾了手指舒适度与记忆便捷性。官方网站:https://www.flypy.com
小鹤双拼的典型键位对照(部分示例):
| 按键 | 声母 | 韵母 |
|---|---|---|
| Q | q | iu(qiu→qi) |
| W | w | ua/ia |
| E | — | e/ê |
| R | r | uan/er |
| T | t | ue/üe |
| Y | y | uai/v |
| U | sh | u |
| I | ch | in/uang |
| O | — | ou |
| P | p | un |
| … | … | … |
- 注册:填写用户名与密码(两次确认)即可创建账户,密码经过 Base64 编码后存入本地 SQLite 数据库。
- 登录:验证用户名与密码,登录成功后进入练习主界面。
- 偏好持久化:每位用户的"显示速度信息"和"显示键盘提示"开关状态会自动保存,下次登录时恢复。
- 从剪贴板导入:将任意文本复制到剪贴板后,通过菜单一键导入作为练习内容。
- 从文件导入:支持打开本地文件(
.txt、.php、.dpl、.m3u、.m3u8、.xspf等),文件内容以 UTF-8 编码读取。
| 指标 | 说明 |
|---|---|
| 用时 | 从开始输入第一个字符时自动计时,以 分:秒 格式显示(每 50ms 刷新) |
| 速度 | 字/分钟(CPM),每 2 秒更新一次 |
| 错字数 | 与原文不一致的字符数量,实时统计 |
| 回改次数 | 按下 Backspace 键的总次数,用于衡量练习流畅度 |
- 下方输入区与上方原文区同步滚动。
- 输入内容与原文实时对比:正确的字显示为黑色,错误的字标红显示,帮助用户立刻发现并纠正错误。
- 屏幕上显示 A–Z 共 26 个按键的示意图。
- 软件根据当前光标位置的汉字自动解析其小鹤双拼编码:
- 绿色高亮:需要先按下的按键(声母键)
- 蓝色高亮:需要后按下的按键(韵母键)
- 此功能可在"功能"菜单中随时开关。
- 文件菜单:从剪贴板导入 / 从文件导入。
- 功能菜单:显示/隐藏速度信息、显示/隐藏键盘提示(支持保持菜单展开状态)。
- 帮助菜单:一键打开小鹤双拼官网 flypy.com。
软件包含三个主要界面:
- 登录界面(
signin.ui):输入用户名、密码,或跳转注册。 - 注册界面(
signup.ui):填写用户名、密码(两次输入),注册成功后返回登录。 - 打字练习主界面(
mainwindow.ui):- 上半区:原文显示文本框(只读)
- 下半区:用户输入文本框(含实时纠错高亮)
- 右侧/底部:计时器、速度、错字数、回改次数的 LCD 数字显示
- 底部:26 键键盘示意图(提示当前需按下的键)
| 依赖项 | 版本要求 |
|---|---|
| Qt | 5.x(推荐 Qt 5.15.2) |
| 编译器 | MinGW 64-bit 或 MSVC(支持 C++17) |
| Qt 模块 | core gui widgets sql |
| 操作系统 | Windows(当前版本针对 Windows 开发) |
注意:软件使用了
setlocale(LC_ALL, "chs")和wcstombs进行汉字转拼音,当前版本主要在 Windows 平台上测试运行。
- 安装 Qt 5.15.2(包含 MinGW 64-bit 工具链)。
- 克隆本仓库:
git clone https://github.com/dpy22/typewriting.git cd typewriting - 用 Qt Creator 打开
typewriting.pro。 - 选择 Desktop Qt 5.15.2 MinGW 64-bit 套件(Kit)。
- 点击"运行"(Ctrl+R)即可编译并启动。
cd typewriting
qmake typewriting.pro
make # Windows 下使用 mingw32-make
./typewriting首次运行时,软件会在当前目录自动创建 SQLite 数据库文件
user.db,用于存储用户信息。
- 启动软件,显示登录界面。
- 点击"注册"按钮,填写用户名和密码(需输入两次确认),点击注册。
- 注册成功后自动返回登录界面。
- 输入注册时的用户名和密码,点击"登录"。
- 登录成功后进入打字练习主界面。
- 方式一(剪贴板):先复制好想练习的文章,然后点击菜单"文件 → 从剪贴板导入"。
- 方式二(文件):点击菜单"文件 → 从文件导入",选择本地
.txt文件。
- 在下方输入框中使用小鹤双拼输入文字。
- 开始输入时计时器自动启动。
- 参考屏幕键盘提示:绿色键为声母,蓝色键为韵母。
- 错误字符会以红色标注,及时按 Backspace 回改。
- 右侧 LCD 面板实时显示用时、速度、错字数和回改次数。
| 选项 | 说明 |
|---|---|
| 显示速度信息 | 开/关速度和回改统计区域 |
| 显示键盘提示 | 开/关屏幕键盘提示区域 |
这两项设置会自动保存到数据库,下次登录时自动恢复。
typewriting/
├── main.cpp # 程序入口,启动登录界面
├── signin.cpp/.h/.ui # 登录界面(含数据库初始化)
├── signup.cpp/.h/.ui # 注册界面
├── mainwindow.cpp/.h/.ui # 打字练习主界面
├── text.cpp/.h # 汉字转小鹤双拼核心逻辑
├── mytextedit.cpp/.h # 自定义文本编辑框(监听 Backspace)
├── mymenu.cpp/.h # 自定义菜单(点击不自动关闭)
├── images/
│ └── logo.jpg # 软件图标
├── images.qrc # Qt 资源文件
└── typewriting.pro # Qt 项目文件
| 模块 | 文件 | 职责 |
|---|---|---|
| 登录/注册 | signin, signup |
用户身份验证、SQLite 数据库读写 |
| 主界面 | mainwindow |
文本对比、计时、速度统计、键盘提示调度 |
| 拼音转换 | text |
根据汉字 GBK 编码查表得到小鹤双拼编码 |
| 输入框 | mytextedit |
继承 QTextEdit,捕获 Backspace 事件并发出信号 |
| 菜单 | mymenu |
继承 QMenu,重写鼠标释放事件防止菜单自动关闭 |
CREATE TABLE user (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username NTEXT UNIQUE NOT NULL, -- Base64 编码的用户名
password NTEXT NOT NULL, -- Base64 编码的密码
speed NTEXT, -- 'Y' 显示速度 / 'N' 隐藏速度
prompt NTEXT -- 'Y' 显示键盘提示 / 'N' 隐藏
);Text::findPy(int i)取原文第i个汉字,通过ChineseConvertPinYinAllSpell将其 GBK 编码映射到小鹤双拼码表(如"啊→aa"、"爱→ai"、"把→ba")。MainWindow::setButtonColors(QString py)根据返回的两字符双拼码,对键盘示意图中对应的按钮设置绿色(声母)和蓝色(韵母)背景。- 用户每次输入字符后触发
findPrompt(),更新键盘高亮。
- 段培耀(Duan Peiyao)
- 包戴宁(Bao Daining)
2022 年 12 月开发,编译环境:Desktop Qt 5.15.2 MinGW 64-bit。
详见 LICENSE 文件。