from PySide6.QtGui import QFont # ====================== 样式宏定义 ====================== # 字体设置 FONT_PATH = "font/SourceHanSerifCN-Medium.ttf" # 指定字体文件路径 FONT_FAMILY = "Source Han Serif CN" # 字体家族名称 TITLE_FONT_SIZE = 12 CONTENT_FONT_SIZE = 11 BUTTON_FONT_SIZE = 11 # 颜色定义 PRIMARY_COLOR = "#2c3e50" SECONDARY_COLOR = "#34495e" ACCENT_COLOR = "#3498db" SUCCESS_COLOR = "#2ecc71" LIGHT_COLOR = "#ecf0f1" DARK_COLOR = "#2c3e50" TEXT_COLOR = "#2c3e50" LIGHT_TEXT_COLOR = "#ecf0f1" # 按钮样式 BUTTON_WIDTH = 200 BUTTON_HEIGHT = 20 BUTTON_RADIUS = 4 BUTTON_FONT_WEIGHT = QFont.Weight.Medium BUTTON_STYLE = f""" QPushButton {{ font-family: "{FONT_FAMILY}"; font-size: {BUTTON_FONT_SIZE}pt; font-weight: {BUTTON_FONT_WEIGHT}; color: {TEXT_COLOR}; background-color: {LIGHT_COLOR}; border: 1px solid {SECONDARY_COLOR}; border-radius: {BUTTON_RADIUS}px; padding: 6px 12px; min-width: {BUTTON_WIDTH}px; min-height: {BUTTON_HEIGHT}px; }} QPushButton:hover {{ background-color: #dfe6ec; }} QPushButton:pressed {{ background-color: #d0d7dd; }} """ PRIMARY_BUTTON_STYLE = f""" QPushButton {{ font-family: "{FONT_FAMILY}"; font-size: {BUTTON_FONT_SIZE + 1}pt; font-weight: {BUTTON_FONT_WEIGHT}; color: {LIGHT_TEXT_COLOR}; background-color: {PRIMARY_COLOR}; border: 1px solid {DARK_COLOR}; border-radius: {BUTTON_RADIUS}px; padding: 8px 16px; }} QPushButton:hover {{ background-color: #34495e; }} QPushButton:pressed {{ background-color: #2c3e50; }} """ # 下拉框样式 COMBO_BOX_HEIGHT = 10 COMBO_BOX_STYLE = f""" QComboBox {{ font-family: "{FONT_FAMILY}"; font-size: {CONTENT_FONT_SIZE}pt; min-height: {COMBO_BOX_HEIGHT}px; padding: 5px 10px; border: 1px solid #bdc3c7; border-radius: 4px; }} QComboBox::drop-down {{ width: 30px; border-left: 1px solid #bdc3c7; }} """ # 组框样式 GROUP_BOX_MIN_WIDTH = 300 GROUP_BOX_MIN_HEIGHT = 120 GROUP_BOX_SPACING = 5 GROUP_BOX_MARGINS = (5, 5, 5, 5) GROUP_BOX_STYLE = f""" QGroupBox {{ font-family: "{FONT_FAMILY}"; font-size: {TITLE_FONT_SIZE}pt; font-weight: bold; color: {PRIMARY_COLOR}; border: 1px solid #bdc3c7; border-radius: 5px; margin-top: 10px; }} QGroupBox::title {{ subcontrol-origin: margin; left: 10px; padding: 0 3px; }} """ # 标签样式 LABEL_STYLE = f""" QLabel {{ font-family: "{FONT_FAMILY}"; font-size: {CONTENT_FONT_SIZE}pt; color: {TEXT_COLOR}; }} """ PATH_DISPLAY_STYLE = f""" QLabel {{ font-family: "{FONT_FAMILY}"; font-size: {CONTENT_FONT_SIZE}pt; background-color: {LIGHT_COLOR}; border: 1px solid #dee2e6; border-radius: 4px; padding: 10px; min-height: 80px; color: {TEXT_COLOR}; }} """ # 主窗口样式 WINDOW_MIN_WIDTH = 1000 WINDOW_MIN_HEIGHT = 720 MAIN_LAYOUT_SPACING = 10 MAIN_LAYOUT_MARGINS = (5, 5, 5, 5) # 信息标签样式 (左侧固定标签) INFO_LABEL_STYLE = f""" QLabel {{ {LABEL_STYLE} min-height: {COMBO_BOX_HEIGHT}px; padding: 5px; min-width: 100px; }} """ # 信息显示样式 (右侧内容) INFO_DISPLAY_STYLE = f""" QLabel {{ {PATH_DISPLAY_STYLE} min-height: {COMBO_BOX_HEIGHT}px; border-radius: 4px; }} """ # 分隔线样式 SEPARATOR_STYLE = """ QFrame { border: 1px solid #dee2e6; margin: 10px 0; } """ # 等待提示样式 WAITING_LABEL_STYLE = f""" QLabel {{ {LABEL_STYLE} font-size: {TITLE_FONT_SIZE}pt; qproperty-alignment: AlignCenter; }} """ CHECKBOX_SIZE = 16 # 复选框大小 CHECKBOX_MARGIN = 1 # 边距 # 基础CheckBox样式 CHECKBOX_STYLE = f""" QCheckBox {{ font-family: "{FONT_FAMILY}"; font-size: {CONTENT_FONT_SIZE}pt; color: {TEXT_COLOR}; spacing: 8px; padding: {CHECKBOX_MARGIN}px; }} QCheckBox::indicator {{ width: {CHECKBOX_SIZE}px; height: {CHECKBOX_SIZE}px; }} """ # 主色调CheckBox PRIMARY_CHECKBOX_STYLE = f""" {CHECKBOX_STYLE} QCheckBox::indicator {{ border: 1px solid {PRIMARY_COLOR}; border-radius: 3px; }} QCheckBox::indicator:checked {{ background-color: {PRIMARY_COLOR}; }} """ SPLITTER_STYLE = """ QSplitter::handle { background: #a0a0a0; /* 分割线颜色 */ height: 4px; /* 水平分割线高度(垂直分割线用 width) */ } QSplitter::handle:hover { background: #808080; /* 鼠标悬停时颜色 */ } """