change tk

This commit is contained in:
zj
2026-02-09 03:14:35 +08:00
parent 8c53b9c0a0
commit 1a3a4746a3
13 changed files with 3595 additions and 221 deletions

169
README_Tkinter.md Normal file
View File

@@ -0,0 +1,169 @@
# Linux 存储管理工具 - Tkinter 版本
这是一个使用 Tkinter 重写的 Linux 存储管理工具,适配低版本系统(如 CentOS 8
## 特性
- **无需 PySide6**: 使用 Python 内置的 Tkinter 模块,无需安装额外的 GUI 库
- **兼容旧系统**: 支持 Python 3.6+,兼容 CentOS 8/RHEL 8 等系统
- **完整功能**: 保留原版本的所有功能,包括:
- 块设备管理(查看、创建分区、格式化、挂载/卸载)
- RAID 管理(创建、停止、删除阵列)
- LVM 管理PV/VG/LV 的创建和删除)
- 设备占用解除
## 系统要求
- Python 3.6 或更高版本
- tkinter 模块(通常随 Python 一起安装)
- 以下系统工具(根据功能需求):
- `lsblk` - 块设备信息
- `parted` - 分区管理
- `mdadm` - RAID 管理
- `lvm2` - LVM 管理
## 安装
### CentOS 8 / RHEL 8
```bash
# 安装 Python 3 和 tkinter
sudo yum install -y python3 python3-tkinter
# 安装必要的存储管理工具
sudo yum install -y parted mdadm lvm2 util-linux
# 可选:安装 pexpect用于交互式命令推荐安装
sudo pip3 install pexpect
```
### Ubuntu 20.04 / Debian 10
```bash
# 安装 Python 3 和 tkinter
sudo apt-get update
sudo apt-get install -y python3 python3-tk
# 安装必要的存储管理工具
sudo apt-get install -y parted mdadm lvm2 util-linux
# 可选:安装 pexpect
sudo pip3 install pexpect
```
## 使用方法
### 方式一:使用启动脚本(推荐)
```bash
chmod +x run_tkinter.sh
./run_tkinter.sh
```
### 方式二:直接运行
```bash
sudo python3 main_tkinter.py
```
### 方式三:创建桌面快捷方式
```bash
# 创建桌面文件
cat > ~/.local/share/applications/linux-storage-manager.desktop << 'EOF'
[Desktop Entry]
Name=Linux 存储管理器
Comment=Linux 存储管理工具
Exec=python3 /path/to/diskmanager/main_tkinter.py
Type=Application
Terminal=false
Icon=drive-harddisk
Categories=System;Filesystem;
EOF
```
## 文件说明
| 文件 | 说明 |
|------|------|
| `main_tkinter.py` | 程序入口 |
| `mainwindow_tkinter.py` | 主窗口实现 |
| `dialogs_tkinter.py` | 对话框组件 |
| `logger_config_tkinter.py` | 日志配置Tkinter 版本)|
| `disk_operations_tkinter.py` | 磁盘操作模块Tkinter 版本)|
| `raid_operations_tkinter.py` | RAID 操作模块Tkinter 版本)|
| `lvm_operations_tkinter.py` | LVM 操作模块Tkinter 版本)|
| `occupation_resolver_tkinter.py` | 设备占用解除模块Tkinter 版本)|
| `system_info.py` | 系统信息获取模块(无需修改)|
| `run_tkinter.sh` | 启动脚本 |
| `verify_tkinter.py` | 环境验证脚本 |
## 与原版本的区别
1. **GUI 框架**: PySide6 → Tkinter
2. **线程机制**: QThread → threading.Thread
3. **信号/槽**: Qt Signal/Slot → Python 回调函数 + queue
4. **对话框**: QDialog → tkinter.Toplevel
5. **消息框**: QMessageBox → tkinter.messagebox
6. **输入框**: QInputDialog → tkinter.simpledialog
## 注意事项
1. **权限**: 程序需要 root 权限才能执行存储管理操作
2. **数据安全**: 删除、格式化等操作会永久删除数据,请谨慎操作
3. **备份**: 执行重要操作前请备份重要数据
4. **兼容性**: 虽然适配了旧系统,但建议使用前先在测试环境验证
## 故障排除
### 问题:无法启动,提示缺少 tkinter
**解决**:
```bash
# CentOS/RHEL
sudo yum install python3-tkinter
# Ubuntu/Debian
sudo apt-get install python3-tk
```
### 问题:部分功能无法使用
**解决**: 确保安装了相应的系统工具:
```bash
# CentOS/RHEL
sudo yum install parted mdadm lvm2
# Ubuntu/Debian
sudo apt-get install parted mdadm lvm2
```
### 问题:界面显示异常
**解决**: 尝试设置环境变量:
```bash
export DISPLAY=:0
python3 main_tkinter.py
```
### 问题:提示缺少 pexpect
**解决**: pexpect 是可选依赖,用于处理交互式命令(如创建 RAID 时的确认提示)。
```bash
sudo pip3 install pexpect
```
如果没有安装 pexpectRAID 创建功能仍能工作,但可能无法处理交互式提示。
## 开发信息
- **目标 Python 版本**: 3.6+
- **GUI 库**: Tkinter (内置)
- **线程库**: threading (内置)
- **依赖**:
- 必需: 无(纯 Python 标准库 + tkinter
- 可选: pexpect用于交互式命令
## 许可证
与原项目相同。