Add Dispatch_V0.1.1
This commit is contained in:
439
Dispatch_V0.1.1/gui/styles/inputs.py
Normal file
439
Dispatch_V0.1.1/gui/styles/inputs.py
Normal file
@@ -0,0 +1,439 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# gui/styles/inputs.py
|
||||
|
||||
"""Стили для полей ввода"""
|
||||
|
||||
INPUTS = {
|
||||
|
||||
"COORDINATE_INPUT": """
|
||||
QDoubleSpinBox {
|
||||
border: 1px solid palette(mid);
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: palette(base);
|
||||
color: palette(text);
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QDoubleSpinBox:focus {
|
||||
border: 2px solid palette(highlight);
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"COORDINATE_INPUT_DARK": """
|
||||
QDoubleSpinBox {
|
||||
border: 1px solid #5a5a5a;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #2e2e2e;
|
||||
color: #f2f2f2;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QDoubleSpinBox:focus {
|
||||
border: 2px solid #3b82f6;
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"COORDINATE_INPUT_LIGHT": """
|
||||
QDoubleSpinBox {
|
||||
border: 1px solid #DFE1E6;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
color: #172B4D;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QDoubleSpinBox:focus {
|
||||
border: 2px solid #0C66E4;
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"COORDINATE_INPUT_DARK_ACTIVE": """
|
||||
QDoubleSpinBox {
|
||||
border: 2px solid #3b82f6;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #2e2e2e;
|
||||
color: #f2f2f2;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
""",
|
||||
|
||||
"COORDINATE_INPUT_LIGHT_ACTIVE": """
|
||||
QDoubleSpinBox {
|
||||
border: 2px solid #0C66E4;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
color: #172B4D;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
""",
|
||||
|
||||
"ERROR_DIALOG_TEXT": """
|
||||
QTextEdit {
|
||||
background-color: white;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 0px;
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
}
|
||||
""",
|
||||
|
||||
"FORM_WIDGET": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
}
|
||||
QLabel {
|
||||
color: palette(window-text);
|
||||
font-size: 14px;
|
||||
}
|
||||
QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
|
||||
border: 1px solid palette(mid);
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: palette(base);
|
||||
color: palette(text);
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QRadioButton {
|
||||
color: palette(window-text);
|
||||
background-color: transparent;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: palette(base);
|
||||
border: 1px solid palette(mid);
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: palette(base);
|
||||
border: 2px solid palette(highlight);
|
||||
border-radius: 0px;
|
||||
}
|
||||
QLineEdit:focus, QComboBox:focus, QSpinBox:focus, QDoubleSpinBox:focus, QTextEdit:focus {
|
||||
border: 2px solid palette(highlight);
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"FORM_WIDGET_DARK": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
}
|
||||
QLabel, QRadioButton {
|
||||
color: #f2f2f2;
|
||||
font-size: 14px;
|
||||
}
|
||||
QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
|
||||
border: 1px solid #5a5a5a;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #2e2e2e;
|
||||
color: #f2f2f2;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: #2e2e2e;
|
||||
border: 1px solid #7a7a7a;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: #2e2e2e;
|
||||
border: 2px solid #3b82f6;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QLineEdit:focus, QComboBox:focus, QSpinBox:focus, QDoubleSpinBox:focus, QTextEdit:focus {
|
||||
border: 2px solid #3b82f6;
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"FORM_WIDGET_LIGHT": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
}
|
||||
QLabel, QRadioButton {
|
||||
color: #172B4D;
|
||||
font-size: 14px;
|
||||
}
|
||||
QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
|
||||
border: 1px solid #DFE1E6;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
color: #172B4D;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #DFE1E6;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: #FFFFFF;
|
||||
border: 2px solid #0C66E4;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QLineEdit:focus, QComboBox:focus, QSpinBox:focus, QDoubleSpinBox:focus, QTextEdit:focus {
|
||||
border: 2px solid #0C66E4;
|
||||
outline: none;
|
||||
}
|
||||
QLineEdit::placeholder {
|
||||
color: #5E6C84;
|
||||
}
|
||||
""",
|
||||
|
||||
"FORM_WIDGET_DARK_ACTIVE": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
}
|
||||
QLabel {
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
}
|
||||
QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
|
||||
border: 2px solid #0078d4;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #333;
|
||||
color: #ffffff;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QRadioButton {
|
||||
color: #ffffff;
|
||||
background-color: transparent;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: #666;
|
||||
border: 1px solid #999;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #999;
|
||||
border-radius: 0px;
|
||||
}
|
||||
""",
|
||||
"FORM_WIDGET_LIGHT_ACTIVE": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
}
|
||||
QLabel {
|
||||
color: #172B4D;
|
||||
font-size: 14px;
|
||||
}
|
||||
QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
|
||||
border: 2px solid #0C66E4;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
color: #172B4D;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QRadioButton {
|
||||
color: #172B4D;
|
||||
background-color: transparent;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #DFE1E6;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: #FFFFFF;
|
||||
border: 2px solid #0C66E4;
|
||||
border-radius: 0px;
|
||||
}
|
||||
""",
|
||||
"TEXT_INPUT": """
|
||||
QLineEdit {
|
||||
border: 1px solid palette(mid);
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: palette(base);
|
||||
color: palette(text);
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QLineEdit:focus {
|
||||
border: 2px solid palette(highlight);
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"TEXT_INPUT_DARK": """
|
||||
QLineEdit {
|
||||
border: 1px solid #5a5a5a;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #2e2e2e;
|
||||
color: #f2f2f2;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QLineEdit:focus {
|
||||
border: 2px solid #3b82f6;
|
||||
outline: none;
|
||||
}
|
||||
""",
|
||||
|
||||
"TEXT_INPUT_LIGHT": """
|
||||
QLineEdit {
|
||||
border: 1px solid #DFE1E6;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
color: #172B4D;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
QLineEdit:focus {
|
||||
border: 2px solid #0C66E4;
|
||||
outline: none;
|
||||
}
|
||||
QLineEdit::placeholder {
|
||||
color: #5E6C84;
|
||||
}
|
||||
""",
|
||||
|
||||
"TEXT_INPUT_DARK_ACTIVE": """
|
||||
QLineEdit {
|
||||
border: 2px solid #0078d4;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #333;
|
||||
color: #ffffff;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
""",
|
||||
|
||||
"TEXT_INPUT_LIGHT_ACTIVE": """
|
||||
QLineEdit {
|
||||
border: 2px solid #0C66E4;
|
||||
border-radius: 0px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
color: #172B4D;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
""",
|
||||
|
||||
"RADIO_BUTTON": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
QRadioButton {
|
||||
color: palette(window-text);
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: palette(base);
|
||||
border: 1px solid palette(mid);
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: palette(base);
|
||||
border: 2px solid palette(highlight);
|
||||
border-radius: 0px;
|
||||
}
|
||||
""",
|
||||
|
||||
"RADIO_BUTTON_DARK": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
QRadioButton {
|
||||
color: #f2f2f2;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: #2e2e2e;
|
||||
border: 1px solid #7a7a7a;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: #2e2e2e;
|
||||
border: 2px solid #3b82f6;
|
||||
border-radius: 0px;
|
||||
}
|
||||
""",
|
||||
|
||||
"RADIO_BUTTON_LIGHT": """
|
||||
QWidget {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
QRadioButton {
|
||||
color: #172B4D;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
QRadioButton::indicator:unchecked {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #DFE1E6;
|
||||
border-radius: 0px;
|
||||
}
|
||||
QRadioButton::indicator:checked {
|
||||
background-color: #FFFFFF;
|
||||
border: 2px solid #0C66E4;
|
||||
border-radius: 0px;
|
||||
}
|
||||
""",
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Module workflow notes
|
||||
# ---------------------------------------------------------------------------
|
||||
#
|
||||
# 1) Назначение модуля:
|
||||
# Определение QSS-стилей для полей ввода: координатные input'ы
|
||||
# (QDoubleSpinBox), текстовые поля (QLineEdit), формы (QLineEdit +
|
||||
# QComboBox + QSpinBox + QRadioButton + QTextEdit), радио-кнопки.
|
||||
# Поддержка тем: стандартная (palette), dark, light, active-варианты.
|
||||
#
|
||||
# 2) Зависимости модуля:
|
||||
# Импорты: нет
|
||||
# Хост/базовый класс: нет (модуль-словарь)
|
||||
# Внешние библиотеки: нет
|
||||
#
|
||||
# 3) Экспорт:
|
||||
# Словарь INPUTS: dict[str, str] — ключ → QSS-строка.
|
||||
# Ключи: COORDINATE_INPUT, COORDINATE_INPUT_DARK, COORDINATE_INPUT_LIGHT,
|
||||
# ERROR_DIALOG_TEXT, FORM_WIDGET, FORM_WIDGET_DARK, FORM_WIDGET_LIGHT,
|
||||
# FORM_WIDGET_DARK_ACTIVE, FORM_WIDGET_LIGHT_ACTIVE,
|
||||
# TEXT_INPUT, TEXT_INPUT_DARK, TEXT_INPUT_LIGHT,
|
||||
# TEXT_INPUT_DARK_ACTIVE, TEXT_INPUT_LIGHT_ACTIVE,
|
||||
# RADIO_BUTTON, RADIO_BUTTON_DARK, RADIO_BUTTON_LIGHT.
|
||||
#
|
||||
# 4) Состояние (поля):
|
||||
# INPUTS: dict[str, str] — единственный экспортируемый словарь.
|
||||
#
|
||||
# 5) Последовательность действий и вызовов:
|
||||
# Нет вызовов; модуль содержит только декларативные QSS-строки.
|
||||
# Импортируется в gui/styles/__init__.py → APP_STYLES.update(INPUTS).
|
||||
#
|
||||
# 6) Побочные эффекты:
|
||||
# Нет побочных эффектов при импорте.
|
||||
#
|
||||
# 7) Границы ответственности:
|
||||
# НЕ применяет стили — только хранит QSS-строки.
|
||||
# НЕ содержит стили для кнопок, меток или контейнеров.
|
||||
#
|
||||
# 8) Обработка ошибок:
|
||||
# Нет; модуль декларативный.
|
||||
#
|
||||
# 9) Инварианты и контракты:
|
||||
# - Каждый ключ имеет варианты: базовый (palette), _DARK, _LIGHT.
|
||||
# - Active-варианты имеют суффикс _DARK_ACTIVE / _LIGHT_ACTIVE.
|
||||
# - Все QSS-строки — валидный Qt StyleSheet синтаксис.
|
||||
#
|
||||
# 10) Правило сопровождения:
|
||||
# Новые стили полей ввода добавлять сюда, соблюдая паттерн
|
||||
# KEY / KEY_DARK / KEY_LIGHT. Active-варианты — по необходимости.
|
||||
# Не дублировать стили кнопок (→ buttons.py) или меток (→ labels.py).
|
||||
Reference in New Issue
Block a user