#!/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;"