这是一个使用 Rust 和 egui 框架开发的球员数据可视化工具,可以从 SQLite 数据库读取球员数据并进行展示。
- 从 SQLite 数据库读取球员数据
- 左侧显示球员列表,可按名称、球队和国籍搜索
- 右侧显示选中球员的详细信息
- 显示球员六维属性雷达图(技术、精神、进攻、防守、身体、守门)
- 支持球员对比功能
- 支持数据库导入导出功能
- 支持自定义字体,默认使用 PingFang 字体
- 自动回退到系统字体,支持 Windows 常见中文字体
- 优化的界面显示和性能
应用程序会按以下顺序查找并使用字体:
- 首先尝试加载
assets/font/Pingfang.ttf自定义字体 - 如果找不到自定义字体,会自动尝试加载以下 Windows 系统字体:
- 微软雅黑 (msyh.ttc)
- 宋体 (simsun.ttc)
- 黑体 (simhei.ttf)
- 楷体 (simkai.ttf)
- 微软雅黑 Light (msyhl.ttc)
- Segoe UI (segoeui.ttf)
应用程序需要以下表结构:
- ID: 球员 ID
- PlayerName: 球员名称
- CurrentTeam: 当前球队 ID
- Nationality: 国籍
- Position: 位置
- LongPass: 长传
- ShortPass: 短传
- Dribble: 盘带
- Anticipation: 预判
- Shooting: 射门
- Tackling: 铲球
- Stamina: 体力
- Strength: 力量
- Pace: 速度
- Agility: 敏捷
- KeeperSaving: 扑救
- KeeperAnticipation: 守门预判
- ID: 球队 ID
- TeamName: 球队名称
- ID: ID
- PCID: 当前球队 ID
- 启动应用程序
- 点击"载入数据库"按钮,选择 SQLite 数据库文件
- 在左侧列表中选择球员,右侧将显示详细信息
- 使用搜索框可以按名称或国籍搜索球员
- 点击"球队"按钮可以筛选当前球队的球员
- 点击"对比"按钮可以选择另一名球员进行属性对比
项目包含一个示例数据库生成工具,可以通过以下命令创建:
cargo run --bin create_sample_db
这将在项目根目录下创建一个 sample.db 文件,包含示例数据。
cargo build --release
cargo run --release
- Windows 10/11 或其他支持的操作系统
- 如果需要使用自定义字体,请确保
assets/font/Pingfang.ttf文件存在
发行版本已经进行了以下优化:
- 使用 LTO (Link Time Optimization) 提高性能
- 二进制文件大小优化
- 无控制台窗口模式运行
- 高 DPI 显示支持
项目使用 Rust 2021 edition 开发,主要依赖以下库:
- eframe/egui: GUI 框架
- rusqlite: SQLite 数据库支持
- chrono: 时间处理
- serde: 序列化/反序列化
- image: 图像处理
开发环境设置:
git clone https://github.com/blankzsh/Genine.git
cd Genine
cargo build