|
|
# 战场环境探索系统 - 样式管理系统
|
|
|
|
|
|
## 📋 系统概述
|
|
|
|
|
|
本目录包含战场环境探索系统的完整样式管理系统,提供军事主题的专业界面设计和统一的样式管理功能。
|
|
|
|
|
|
## 🗂️ 文件结构
|
|
|
|
|
|
### 核心管理器
|
|
|
```
|
|
|
styles/
|
|
|
├── LeftPanelStyleManager.cpp/h # 左侧面板样式管理器
|
|
|
├── ModernStyleManager.cpp/h # 现代化样式管理器(主要)
|
|
|
└── README.md # 本文档
|
|
|
```
|
|
|
|
|
|
### 样式表文件
|
|
|
```
|
|
|
styles/
|
|
|
├── left_panel_styles.qss # 左侧面板专用样式
|
|
|
├── main_styles.qss # 主窗口样式
|
|
|
├── military_theme.qss # 经典军事主题
|
|
|
├── military_theme_clean.qss # 清洁版军事主题
|
|
|
└── modern_military_theme.qss # 现代军事主题(推荐)
|
|
|
```
|
|
|
|
|
|
## 🎯 使用指南
|
|
|
|
|
|
### 1. 快速开始
|
|
|
|
|
|
在MainWindow中集成现代样式管理器:
|
|
|
|
|
|
```cpp
|
|
|
#include "styles/ModernStyleManager.h"
|
|
|
|
|
|
// 在构造函数中初始化
|
|
|
ModernStyleManager::getInstance()->applyTheme(
|
|
|
ModernStyleManager::ThemeType::ModernMilitary
|
|
|
);
|
|
|
```
|
|
|
|
|
|
### 2. 主题切换
|
|
|
|
|
|
```cpp
|
|
|
// 切换到现代军事主题
|
|
|
styleManager->applyTheme(ThemeType::ModernMilitary);
|
|
|
|
|
|
// 切换到经典军事主题
|
|
|
styleManager->applyTheme(ThemeType::ClassicMilitary);
|
|
|
|
|
|
// 启用演示模式(适合课堂展示)
|
|
|
styleManager->setDisplayMode(DisplayMode::Presentation);
|
|
|
```
|
|
|
|
|
|
### 3. 按钮样式应用
|
|
|
|
|
|
```cpp
|
|
|
// 使用便捷工具类
|
|
|
ModernStyleUtils::applyPrimaryButton(button);
|
|
|
ModernStyleUtils::applySuccessButton(successBtn);
|
|
|
ModernStyleUtils::applyDangerButton(deleteBtn);
|
|
|
```
|
|
|
|
|
|
### 4. 设备状态指示
|
|
|
|
|
|
```cpp
|
|
|
// 设置设备状态
|
|
|
ModernStyleUtils::applyOnlineStatus(statusLabel);
|
|
|
ModernStyleUtils::applyOfflineStatus(statusLabel);
|
|
|
ModernStyleUtils::applyWarningStatus(statusLabel);
|
|
|
```
|
|
|
|
|
|
## 🎨 主题系统
|
|
|
|
|
|
### 可用主题
|
|
|
|
|
|
| 主题名称 | 文件 | 特点 | 推荐场景 |
|
|
|
|---------|------|------|----------|
|
|
|
| ModernMilitary | modern_military_theme.qss | 现代化设计,Qt 5.15完全兼容 | **主要推荐** |
|
|
|
| ClassicMilitary | military_theme_clean.qss | 经典军事风格 | 传统界面 |
|
|
|
| Academic | - | 学术演示优化 | 课堂展示 |
|
|
|
| HighContrast | - | 高对比度模式 | 明亮环境 |
|
|
|
|
|
|
### 显示模式
|
|
|
|
|
|
| 模式 | 特点 | 适用场景 |
|
|
|
|------|------|----------|
|
|
|
| Normal | 标准显示 | 日常使用 |
|
|
|
| Presentation | 大字体,高对比度 | 课堂演示,投影 |
|
|
|
| HighContrast | 超高对比度 | 明亮环境,视觉辅助 |
|
|
|
|
|
|
## 🔧 技术特性
|
|
|
|
|
|
### 1. Qt 5.15完全兼容
|
|
|
- ✅ 移除所有CSS3不支持属性
|
|
|
- ✅ 使用Qt原生样式特性
|
|
|
- ✅ 跨平台一致性保证
|
|
|
|
|
|
### 2. 性能优化
|
|
|
- ✅ 样式表缓存机制
|
|
|
- ✅ 动画资源自动清理
|
|
|
- ✅ 单例模式避免重复创建
|
|
|
- ✅ 延迟加载和按需应用
|
|
|
|
|
|
### 3. 学术演示优化
|
|
|
- ✅ 演示模式大字体
|
|
|
- ✅ 高对比度支持
|
|
|
- ✅ 投影友好设计
|
|
|
- ✅ 专业军事配色
|
|
|
|
|
|
### 4. 开发友好
|
|
|
- ✅ 便捷的工具类方法
|
|
|
- ✅ 详细的API文档
|
|
|
- ✅ 清晰的错误处理
|
|
|
- ✅ 完整的示例代码
|
|
|
|
|
|
## 📊 样式管理器对比
|
|
|
|
|
|
| 特性 | LeftPanelStyleManager | ModernStyleManager |
|
|
|
|------|----------------------|-------------------|
|
|
|
| 作用范围 | 左侧设备面板 | 全局样式管理 |
|
|
|
| 主题支持 | 单一主题 | 多主题切换 |
|
|
|
| 动画支持 | 基础 | 完整动画系统 |
|
|
|
| 演示模式 | ❌ | ✅ |
|
|
|
| 状态管理 | 基础 | 完整状态系统 |
|
|
|
| 推荐使用 | 特定场景 | **主要推荐** |
|
|
|
|
|
|
## 🚀 最佳实践
|
|
|
|
|
|
### 1. 初始化顺序
|
|
|
```cpp
|
|
|
// 1. 创建UI组件
|
|
|
setupUI();
|
|
|
|
|
|
// 2. 应用样式主题
|
|
|
ModernStyleManager::getInstance()->applyTheme(ThemeType::ModernMilitary);
|
|
|
|
|
|
// 3. 连接信号槽
|
|
|
connectSignals();
|
|
|
```
|
|
|
|
|
|
### 2. 样式应用时机
|
|
|
```cpp
|
|
|
// ✅ 正确:在组件创建后应用样式
|
|
|
QPushButton* button = new QPushButton("确定", this);
|
|
|
ModernStyleUtils::applyPrimaryButton(button);
|
|
|
|
|
|
// ❌ 错误:在组件创建前应用样式
|
|
|
ModernStyleUtils::applyPrimaryButton(nullptr);
|
|
|
```
|
|
|
|
|
|
### 3. 性能考虑
|
|
|
```cpp
|
|
|
// ✅ 批量样式应用
|
|
|
styleManager->refreshAllStyles();
|
|
|
|
|
|
// ❌ 频繁的单个样式切换
|
|
|
for (auto* button : buttons) {
|
|
|
styleManager->applyButtonStyle(button, style); // 避免在循环中频繁调用
|
|
|
}
|
|
|
```
|
|
|
|
|
|
## 🐛 故障排除
|
|
|
|
|
|
### 常见问题
|
|
|
|
|
|
1. **样式不生效**
|
|
|
- 检查资源文件是否正确包含
|
|
|
- 确认控件objectName设置
|
|
|
- 验证样式应用时机
|
|
|
|
|
|
2. **CSS3错误**
|
|
|
- 使用modern_military_theme.qss(已修复CSS3兼容性)
|
|
|
- 避免使用transition、transform、box-shadow
|
|
|
|
|
|
3. **性能问题**
|
|
|
- 使用样式缓存
|
|
|
- 避免频繁的主题切换
|
|
|
- 定期清理动画资源
|
|
|
|
|
|
### 调试方法
|
|
|
```cpp
|
|
|
// 启用调试输出
|
|
|
qDebug() << "Current theme:" << static_cast<int>(styleManager->getCurrentTheme());
|
|
|
qDebug() << "Style sheet length:" << styleManager->getCurrentStyleSheet().length();
|
|
|
```
|
|
|
|
|
|
## 📈 版本历史
|
|
|
|
|
|
| 版本 | 日期 | 主要更新 |
|
|
|
|------|------|----------|
|
|
|
| v4.0 | 2024-07-03 | CSS3兼容性修复,现代化样式管理器 |
|
|
|
| v3.0 | - | 左侧面板样式管理器 |
|
|
|
| v2.0 | - | 基础样式表系统 |
|
|
|
| v1.0 | - | 初始版本 |
|
|
|
|
|
|
## 🎓 学术价值
|
|
|
|
|
|
本样式管理系统展现了以下技术深度:
|
|
|
|
|
|
1. **设计模式应用**:单例模式、策略模式、观察者模式
|
|
|
2. **Qt框架掌握**:样式表系统、动画框架、资源管理
|
|
|
3. **性能优化**:缓存机制、内存管理、渲染优化
|
|
|
4. **工程实践**:模块化设计、错误处理、文档规范
|
|
|
|
|
|
---
|
|
|
|
|
|
*本样式管理系统为战场环境探索系统提供专业级的界面设计支持,确保在学术展示和实际应用中都能呈现最佳效果。*
|