Files
WQ_GUI/IMAGE_CONFIG.md
2026-04-08 15:25:08 +08:00

187 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Logo和横幅图像配置说明
## 功能概述
本更新实现了以下需求:
1. **Logo在菜单栏左侧** - 和菜单栏在**同一行**
2. **菜单栏在最右侧** - 使用弹性空间布局
3. **横幅图片撑满整个区域** - 自适应窗口宽度
## 布局说明
```
┌─────────────────────────────────────┐
│ [Logo] 文件 工具 帮助 │ ← 同一行Logo在左菜单在右
├─────────────────────────────────────┤
│ [软件名称横幅图 - 撑满宽度] │ ← 横幅撑满整个区域
├─────────────────────────────────────┤
│ │
│ 主要内容区 │
│ │
```
## 配置步骤
### 1. 准备图像文件
将你的图像文件放在项目目录中。建议的目录结构:
```
fengzhuang-ui2/
├── assets/ # 推荐:创建资源目录
│ ├── logo.png # 公司logo (建议高度30像素)
│ └── banner.png # 软件名称横幅 (建议高度70像素)
├── src/
│ └── gui/
│ └── water_quality_gui.py
└── ...
```
### 2. 修改图像路径
打开 `src/gui/water_quality_gui.py` 文件,找到以下两处代码:
#### Logo路径修改create_logo_bar 方法中第3928行左右
```python
# 修改前:
logo_path = "path/to/your/logo.png"
# 修改后(使用相对路径):
logo_path = "assets/logo.png"
# 或使用绝对路径:
logo_path = r"E:\your\full\path\to\logo.png"
```
#### 横幅路径修改create_banner_widget 方法中第3978行左右
```python
# 修改前:
banner_path = "path/to/your/banner.png"
# 修改后(使用相对路径):
banner_path = "assets/banner.png"
# 或使用绝对路径:
banner_path = r"E:\your\full\path\to\banner.png"
```
### 3. 图像规格建议
| 名称 | 建议尺寸 | 格式 | 说明 |
|-----|--------|------|------|
| Logo | 高度30像素 | PNG/JPG | 放在顶部Logo栏中自动按高度缩放保持宽高比 |
| 横幅 | 高度70像素 | PNG/JPG | 占据横幅区域,自动按高度缩放保持宽高比 |
### 4. 图像加载失败处理
如果图像文件未找到或加载失败,系统会自动显示占位符:
- **Logo占位符**: 显示"Logo"文本,背景为浅灰色
- **横幅占位符**: 显示"软件名称横幅"文本背景为蓝色字体为24号加粗
### 5. 自适应缩放说明
为了避免图像拉伸,代码使用了 `scaledToHeight()` 方法:
- Logo按高度30像素缩放自动计算宽度保持原始宽高比
- 横幅按高度70像素缩放自动计算宽度保持原始宽高比
这样可以确保无论原始图像大小如何,都能自然地显示而不会出现拉伸变形。
## 常见问题
### Q: 如何使用项目内的图像资源?
**A**: 在项目中创建 `assets``resources` 文件夹,并使用相对路径:
```python
# 假设项目结构:
# fengzhuang-ui2/
# ├── assets/
# │ ├── logo.png
# │ └── banner.png
# └── src/gui/water_quality_gui.py
# 在 water_quality_gui.py 中第3928行
logo_path = "assets/logo.png"
# 在 water_quality_gui.py 中第3978行
banner_path = "assets/banner.png"
```
### Q: Logo或横幅大小不合适
**A**: 修改以下代码调整显示大小:
```python
# 在 create_logo_bar() 方法中调整Logo大小
logo_label.setFixedSize(60, 40) # 改为 60×40
# 在 create_banner_widget() 方法中调整横幅大小
banner_label.setMaximumHeight(100) # 改为100像素高
banner_label.setMinimumHeight(80) # 改为最小80像素高
# 调整缩放高度
scaled_pixmap = logo_pixmap.scaledToHeight(35, Qt.SmoothTransformation) # 改为35
scaled_pixmap = banner_pixmap.scaledToHeight(85, Qt.SmoothTransformation) # 改为85
```
### Q: 如何隐藏Logo或横幅
**A**: 在 `init_ui()` 方法中注释掉相应的创建方法:
```python
# 在 init_ui() 中
# self.create_logo_bar() # 注释此行隐藏Logo
# self.create_banner_widget() # 注释此行隐藏横幅
```
### Q: Logo显示位置不对
**A**: Logo栏是作为独立的工具栏添加在菜单栏下方不是在菜单栏内。当前的布局顺序是
1. 菜单栏 (最上方)
2. Logo栏 (菜单栏下方)
3. 横幅区域 (Logo栏下方)
4. 主内容区域 (最下方)
### Q: 图像在高分辨率屏幕上看起来模糊?
**A**: 使用 `Qt.SmoothTransformation` 可以改善图像质量。如果仍然不够清晰,可以准备高分辨率的原始图像。
## 代码位置
- **Logo栏创建**: `create_logo_bar()` 方法 (第3902行)
- **横幅区域创建**: `create_banner_widget()` 方法 (第3950行)
- **主UI初始化**: `init_ui()` 方法 (第3821行)
## 支持的图像格式
- PNG (推荐,支持透明背景)
- JPG/JPEG
- BMP
- GIF
- TIFF
## 样式调整
如需修改样式(背景色、边框等),编辑以下位置的 `setStyleSheet()` 调用:
```python
# Logo样式第3907-3916行
logo_toolbar.setStyleSheet("""...""")
# 占位符样式第3931行
logo_label.setStyleSheet("...")
# 横幅占位符样式第3959-3965行
banner_label.setStyleSheet("""...""")
```
## 更新日期
2026-03-27
## 备注
所有的图像路径都可以根据你的实际项目结构灵活调整。建议将图像文件与代码一起版本控制,以确保项目的可维护性。