Files
zsglpt-pc/ui/constants.py
237899745 83fef6dff2 feat: 知识管理平台精简版 - PyQt6桌面应用
主要功能:
- 账号管理:添加/编辑/删除账号,测试登录
- 浏览任务:批量浏览应读/选读内容并标记已读
- 截图管理:wkhtmltoimage截图,查看历史
- 金山文档:扫码登录/微信快捷登录,自动上传截图

技术栈:
- PyQt6 GUI框架
- Playwright 浏览器自动化
- SQLite 本地数据存储
- wkhtmltoimage 网页截图

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:16:36 +08:00

137 lines
3.0 KiB
Python
Raw Permalink 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.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
UI Design Constants - 统一UI规范
老王说统一规范才能不出SB界面这些数字都是精心调教过的别tm乱改
"""
# ==================== 页面布局 ====================
# 内容区域到边框的距离
PAGE_PADDING = 24
# 主要区块之间的间距
SECTION_SPACING = 24
# ==================== GroupBox 分组框 ====================
# GroupBox 内部边距
# 注意QSS中已经设置了padding-top: 24px给title badge留空间
# 这里只需要设置很小的值或0避免双重间距
GROUP_PADDING_TOP = 8 # QSS padding-top已处理主要间距这里只做微调
GROUP_PADDING_SIDE = 20
GROUP_PADDING_BOTTOM = 20
# GroupBox 内部组件间距
GROUP_SPACING = 16
# ==================== 表单布局 ====================
# 表单行间距
FORM_ROW_SPACING = 16
# 标签最小宽度(右对齐用)
FORM_LABEL_WIDTH = 80
# 水平组件间距(同一行内)
FORM_H_SPACING = 12
# ==================== 输入控件 ====================
# 输入框标准高度
INPUT_HEIGHT = 40
# 小号输入框高度
INPUT_HEIGHT_SMALL = 36
# 输入框最小宽度
INPUT_MIN_WIDTH = 180
# 短输入框宽度如列名A/B/C
INPUT_WIDTH_SHORT = 70
# ==================== 按钮 ====================
# 主要按钮高度
BUTTON_HEIGHT = 40
# 普通按钮高度
BUTTON_HEIGHT_NORMAL = 36
# 小按钮高度
BUTTON_HEIGHT_SMALL = 32
# 主要按钮最小宽度
BUTTON_MIN_WIDTH = 120
# 普通按钮最小宽度
BUTTON_MIN_WIDTH_NORMAL = 100
# 小按钮宽度
BUTTON_WIDTH_SMALL = 65
# 按钮间距
BUTTON_SPACING = 12
# ==================== 列表和表格 ====================
# 表格行高
TABLE_ROW_HEIGHT = 52
# 列表项最小高度
LIST_ITEM_HEIGHT = 44
# 列表最小显示高度
LIST_MIN_HEIGHT = 160
# 图标大小
ICON_SIZE_LARGE = 80
ICON_SIZE_MEDIUM = 48
ICON_SIZE_SMALL = 24
# ==================== 标题 ====================
# 页面标题字号
TITLE_FONT_SIZE = 20
# 副标题字号
SUBTITLE_FONT_SIZE = 16
# 正文字号
TEXT_FONT_SIZE = 13
# 小字字号
TEXT_FONT_SIZE_SMALL = 12
# 标题下方间距
TITLE_MARGIN_BOTTOM = 16
# ==================== 特殊组件 ====================
# 二维码显示区域大小
QR_CODE_SIZE = 200
# 进度条高度
PROGRESS_HEIGHT = 20
# 日志区域最小高度
LOG_MIN_HEIGHT = 120
# ==================== 滚动区域 ====================
# 滚动条宽度
SCROLLBAR_WIDTH = 10
# ==================== 样式片段 ====================
def get_title_style():
"""页面标题样式"""
return f"font-size: {TITLE_FONT_SIZE}px; font-weight: bold; margin-bottom: {TITLE_MARGIN_BOTTOM}px;"
def get_subtitle_style():
"""副标题样式"""
return f"font-size: {SUBTITLE_FONT_SIZE}px; font-weight: 600;"
def get_help_text_style():
"""帮助文本样式"""
return f"color: #666; font-size: {TEXT_FONT_SIZE_SMALL}px; padding: 8px 0;"
def get_status_style(success: bool):
"""状态文本样式"""
color = "#52c41a" if success else "#ff4d4f"
return f"color: {color}; font-size: {TEXT_FONT_SIZE}px;"