You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
2 weeks ago | |
---|---|---|
.. | ||
LeftPanelStyleManager.cpp | 2 weeks ago | |
LeftPanelStyleManager.h | 2 weeks ago | |
ModernStyleManager.cpp | 2 weeks ago | |
ModernStyleManager.h | 2 weeks ago | |
README.md | 2 weeks ago | |
StyleSystemStatus.md | 2 weeks ago | |
USAGE_GUIDE.md | 2 weeks ago | |
left_panel_styles.qss | 2 weeks ago | |
main_styles.qss | 2 weeks ago | |
military_theme.qss | 2 weeks ago | |
military_theme_clean.qss | 3 weeks ago | |
modern_military_theme.qss | 2 weeks ago |
README.md
战场环境探索系统 - 样式管理系统
📋 系统概述
本目录包含战场环境探索系统的完整样式管理系统,提供军事主题的专业界面设计和统一的样式管理功能。
🗂️ 文件结构
核心管理器
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中集成现代样式管理器:
#include "styles/ModernStyleManager.h"
// 在构造函数中初始化
ModernStyleManager::getInstance()->applyTheme(
ModernStyleManager::ThemeType::ModernMilitary
);
2. 主题切换
// 切换到现代军事主题
styleManager->applyTheme(ThemeType::ModernMilitary);
// 切换到经典军事主题
styleManager->applyTheme(ThemeType::ClassicMilitary);
// 启用演示模式(适合课堂展示)
styleManager->setDisplayMode(DisplayMode::Presentation);
3. 按钮样式应用
// 使用便捷工具类
ModernStyleUtils::applyPrimaryButton(button);
ModernStyleUtils::applySuccessButton(successBtn);
ModernStyleUtils::applyDangerButton(deleteBtn);
4. 设备状态指示
// 设置设备状态
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. 初始化顺序
// 1. 创建UI组件
setupUI();
// 2. 应用样式主题
ModernStyleManager::getInstance()->applyTheme(ThemeType::ModernMilitary);
// 3. 连接信号槽
connectSignals();
2. 样式应用时机
// ✅ 正确:在组件创建后应用样式
QPushButton* button = new QPushButton("确定", this);
ModernStyleUtils::applyPrimaryButton(button);
// ❌ 错误:在组件创建前应用样式
ModernStyleUtils::applyPrimaryButton(nullptr);
3. 性能考虑
// ✅ 批量样式应用
styleManager->refreshAllStyles();
// ❌ 频繁的单个样式切换
for (auto* button : buttons) {
styleManager->applyButtonStyle(button, style); // 避免在循环中频繁调用
}
🐛 故障排除
常见问题
-
样式不生效
- 检查资源文件是否正确包含
- 确认控件objectName设置
- 验证样式应用时机
-
CSS3错误
- 使用modern_military_theme.qss(已修复CSS3兼容性)
- 避免使用transition、transform、box-shadow
-
性能问题
- 使用样式缓存
- 避免频繁的主题切换
- 定期清理动画资源
调试方法
// 启用调试输出
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 | - | 初始版本 |
🎓 学术价值
本样式管理系统展现了以下技术深度:
- 设计模式应用:单例模式、策略模式、观察者模式
- Qt框架掌握:样式表系统、动画框架、资源管理
- 性能优化:缓存机制、内存管理、渲染优化
- 工程实践:模块化设计、错误处理、文档规范
本样式管理系统为战场环境探索系统提供专业级的界面设计支持,确保在学术展示和实际应用中都能呈现最佳效果。