文章目录
-
[1. QT 版翻译者资料库](#1. QT 版翻译者资料库)
-
- [1.1 功能模块](#1.1 功能模块)
-
- [旧版 Access 97 格式说明](#旧版 Access 97 格式说明)
- [1.2 目录结构](#1.2 目录结构)
- [1.3 编译验证](#1.3 编译验证)
- [1.4 构建环境](#1.4 构建环境)
-
- [Windows 下构建(Qt 官方安装包,MinGW 示例)](#Windows 下构建(Qt 官方安装包,MinGW 示例))
- [MSVC 示例](#MSVC 示例)
- [1.5 从旧版 VB6 迁移数据](#1.5 从旧版 VB6 迁移数据)
- [1.6 数据库结构](#1.6 数据库结构)
- [1.7 与原版的实现差异](#1.7 与原版的实现差异)
-
[2. VB 版翻译者资料库主界面](#2. VB 版翻译者资料库主界面)
-
[3. QT 版翻译者资料库操作演示](#3. QT 版翻译者资料库操作演示)
-
本项目是用 Qt6(C++/Widgets)重写的【翻译者资料库】,功能对齐原 VB6 版本,涵盖资料管家、词库句库整理、文本处理、对照制作、备份恢复及旧版 Access 数据自动迁移等模块。存储由 Access 改为 SQLite,界面采用原生配色,支持多库分类管理、增删改查、导入导出与全屏阅读,并已在 Qt 6.7.2 环境编译验证通过,15 项核心逻辑测试全部通过。
1. QT 版翻译者资料库
用 Qt6 (C++ / Widgets) 重写的「翻译者资料库」,功能与原 VB6 版本一致。
1.1 功能模块
| 模块 | 对应 VB6 窗体 | 说明 |
|---|---|---|
| 资料管家 | frmSelDataLib / frmData / frmDataManage / frmFullScreen_DataKeeper | 多资料库管理、分类浏览/管理、增删改、导入导出、RTF 正文附件、全屏阅读 |
| 词库整理 | frmClassWordManage / frmFindClassWord | 分类词汇库的增删改查、导入导出 |
| 句库整理 | frmSentenceManage / frmFindSentence | 句子库_1 的增删改查(含状态字段)、导入导出 |
| 文本处理 | frmTextProcess | 删行删字符、英汉/汉英折行、按标点断句、查找替换、列表导入 |
| 对照制作 | frmCEContrast / frmAddEnter | 中英/英汉逐行对照,缺行补 ######空缺#######,可选段首缩进 |
| 备份/恢复 | frmBackup / frmRestore | 备份 SQLite 数据库 + DataKeeper RTF 附件,按时间戳恢复 |
| 数据迁移 | Module1.bas | 启动时自动检测旧 huawei.mak/mdb(程序 data 目录及旧版默认路径),新库无数据时静默导入 SQLite |
旧版 Access 97 格式说明
原版 huawei.mdb 为 Access 97(Jet 3.5)格式,ACE ODBC 驱动无法直接打开(报 "Cannot open a database created with a previous version")。解决方法:先用 DAO 3.6 的 CompactDatabase(src, dst, ";LANGID=0x0804;CP=936", 64) 转换为 Access 2000 格式(32 位进程执行),转换后的 huawei.mdb 放入程序 data\ 目录即可被自动迁移读取。
1.2 目录结构
QT版翻译者资料库/
├── CMakeLists.txt
├── README.md
└── src/
├── main.cpp # 启动:单实例锁、打开数据库、应用配色
├── appglobals.h/.cpp # 全局变量、路径规则、配色系统(对应 Module1.bas)
├── textutils.h/.cpp # 字符串工具、GBK 读写、导入格式解析、RTF 转换
├── database.h/.cpp # 数据库管理器(SQLite,表结构同原 Access 库)
├── mainwindow.h/.cpp # 主窗体(三个顶菜单:实用工具/系统工具/帮助)
├── seldatalibdialog.h/.cpp # 资料库选择/新建/改名
├── databrowser.h/.cpp # 资料浏览
├── datamanager.h/.cpp # 资料管理(导入/导出/增删改/搜索/RTF 同步)
├── fullscreenreader.h/.cpp # 全屏阅读器(保存/打印/字体/RTF)
├── listmanager.h/.cpp # 词库/句库整理(通用,配置化)
├── finddialog.h/.cpp # 通用查找(资料/词汇/句子三合一)
├── textprocessor.h/.cpp # 文本处理器
├── cecontrast.h/.cpp # 对照制作
├── backupdialog.h/.cpp # 备份/恢复
└── ...(其余模块)
运行后在程序目录自动生成:
data/huawei.db # SQLite 数据库(表结构与原 Access 库一致)
data/DataKeeper/*.rtf # 资料正文附件(类别_标题.rtf)
backup/ # 备份点目录
1.3 编译验证
本项目已在本机完成编译与逻辑验证(Qt 6.7.2 MinGW 13.1,安装于 C:\Qt):
- 全部源码编译通过,产物
翻译者资料库.exe(release/目录含已部署 Qt DLL 的可直接运行版本)。 - 15 项核心逻辑无界面测试全部通过:数据库打开/默认 3 库/新建库/编号规范化/类别查询、引号转换往返、中英文定位、资料列表与词汇列表解析、空白行清理、RTF 生成与解析往返、GBK 读写往返、删除资料库。
注意事项
- 工程路径不要包含中文 :MinGW 的 make/moc 在中文路径下会因代码页问题失败(错误现象为
AutogenInfo.json is not readable)。若源码在中文目录,请复制到 ASCII 路径(如C:\Temp\TranslatorDataLib)再构建。
1.4 构建环境
- Qt 6.2 及以上(需要 Core5Compat 模块;安装 Qt 时勾选 "Qt 5 Compatibility Module")
- 组件:Widgets、Sql、PrintSupport、Core5Compat
- CMake ≥ 3.16
- 编译器:MSVC 2019/2022 或 MinGW 8+(Windows);Clang/GCC(Linux/macOS)
Windows 下构建(Qt 官方安装包,MinGW 示例)
bat
set PATH=C:\Qt\6.7.2\mingw_64\bin;C:\Qt\Tools\CMake_64\bin;C:\Qt\Tools\mingw1120_64\bin;%PATH%
cd QT版翻译者资料库
cmake -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
MSVC 示例
bat
:: 在 "x64 Native Tools Command Prompt for VS 2022" 中
set PATH=C:\Qt\6.7.2\msvc2019_64\bin;%PATH%
cd QT版翻译者资料库
cmake -B build -G "Ninja" -DCMAKE_PREFIX_PATH=C:\Qt\6.7.2\msvc2019_64 -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
生成的可执行文件为 build/翻译者资料库.exe(MinGW 直接运行;MSVC 发布时需 windeployqt 拷贝 Qt DLL)。
1.5 从旧版 VB6 迁移数据
- 把旧项目
data目录整体拷贝到本程序目录(或至少拿到huawei.mdb与DataKeeper\*.rtf)。 - 启动本程序,菜单【数据 → 导入旧版 Access 数据】,选择
huawei.mdb。- 要求系统已安装 Access ODBC 驱动(Access Database Engine,多数 Windows 已自带)。
- 所有表(资料库列表、资料库_N、分类词汇库、句子库_1、帮助向导)将原样迁入 SQLite,中文表名/字段名保持不变。
- 把旧
DataKeeper\*.rtf拷贝到data\DataKeeper\,资料正文即可全屏显示。
1.6 数据库结构
| 表 | 字段 |
|---|---|
| 资料库列表 | 编号, 名称(名称形如 资料库_我的资料) |
| 资料库_N | 类别, 编号, 标题, 正文 |
| 分类词汇库 | 类别, 编号, 单词, 注释 |
| 句子库_1 | 类别, 编号, 句子, 注释, 状态 |
| 帮助向导 | 类别, 编号, 标题, 正文 |
- 编号规则:每类别内 1...n 连续,切换类别/增删记录后自动规范化。
- 标题查重:同类别下不允许相同标题/词汇/句子。
- 文本兼容:导入导出默认 GBK 编码(自动识别 UTF-8),标题/正文中的半角引号入库前转为全角(与旧数据格式互通)。
1.7 与原版的实现差异
- 界面采用 Windows 原生配色(原版的系统配色窗体 frmSetColor 未移植)。
- 存储由 Access (.mdb/ADO) 改为 SQLite(Qt SQL),界面行为与业务规则保持一致。
- RTF 正文采用内置解析/生成(标准
ansicpg936RTF),不再依赖 RichTextBox 控件;Word 旧附件可正常读取。 - 原版三个查找窗体(frmFindData/frmFindClassWord/frmFindSentence)合并为一个通用查找组件;frmAddEnter 并入对照制作的"段首缩进"选项。
- 原版 frmFullScreen_DataKeeper 的"机器朗读"按钮在旧源码中本就未实现(残留死代码),未予移植。
2. VB 版翻译者资料库主界面

3. QT 版翻译者资料库操作演示
