From 42d10bd19c218b659e0a2a61b04eef1bf9720f34 Mon Sep 17 00:00:00 2001 From: Jeffreytsai1004 Date: Fri, 18 Apr 2025 02:12:22 +0800 Subject: [PATCH] Update --- Install.py | 10 +-- assets/dark_theme.qss | 201 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 202 insertions(+), 9 deletions(-) create mode 100644 assets/dark_theme.qss diff --git a/Install.py b/Install.py index 20e8cf1..ae9bbd9 100644 --- a/Install.py +++ b/Install.py @@ -54,18 +54,10 @@ PYTHON_VERSION = config.PYTHON_VERSION PYTHON_VERSION_DIR = config.PYTHON_VERSION_DIR # Tool specific configuration -TOOL_ICON = os.path.join(ICONS_PATH, "Logo", "Tool_logo.png") +TOOL_ICON = os.path.join(ICONS_PATH, "logo.png") if not os.path.exists(TOOL_ICON): # If icon file does not exist, use default stylesheet as temporary icon TOOL_ICON = os.path.join(ASSETS_PATH, "dark_theme.qss") - # Create Logo directory - logo_dir = os.path.join(ICONS_PATH, "Logo") - if not os.path.exists(logo_dir): - os.makedirs(logo_dir) - # Copy stylesheet as temporary icon - import shutil - shutil.copy(TOOL_ICON, os.path.join(ICONS_PATH, "Logo", "Tool_logo.png")) - TOOL_ICON = os.path.join(ICONS_PATH, "Logo", "Tool_logo.png") TOOL_COMMAND_ICON = TOOL_ICON # Use the same icon TOOL_WSCL_NAME = f"{TOOL_NAME}WorkspaceControl" diff --git a/assets/dark_theme.qss b/assets/dark_theme.qss new file mode 100644 index 0000000..e5038cb --- /dev/null +++ b/assets/dark_theme.qss @@ -0,0 +1,201 @@ +/* + * Tool Qt Style Sheet (QSS) + * Dark Theme + */ + +/* Global Styles */ +QWidget { + background-color: #1E1E1E; + color: #E0E0E0; + font-family: "Microsoft YaHei UI"; + font-size: 9pt; +} + +/* Button Styles */ +QPushButton { + background-color: #2D2D30; + border: 1px solid #3F3F46; + border-radius: 4px; + padding: 5px 15px; + min-height: 24px; + color: #E0E0E0; +} + +QPushButton:hover { + background-color: #3E3E42; + border-color: #007ACC; +} + +QPushButton:pressed { + background-color: #007ACC; + color: #FFFFFF; +} + +QPushButton:disabled { + background-color: #2D2D30; + color: #656565; + border-color: #3F3F46; +} + +/* Input Box Styles */ +QLineEdit { + background-color: #252526; + border: 1px solid #3F3F46; + border-radius: 4px; + padding: 3px 8px; + min-height: 24px; + color: #E0E0E0; +} + +QLineEdit:focus { + border-color: #007ACC; +} + +/* Combo Box Styles */ +QComboBox { + background-color: #252526; + border: 1px solid #3F3F46; + border-radius: 4px; + padding: 3px 8px; + min-height: 24px; + color: #E0E0E0; +} + +QComboBox:hover { + border-color: #007ACC; +} + +/* Qt-specific subcontrol for ComboBox dropdown button */ +QComboBox::drop-down { + width: 20px; + border-left: 1px solid #3F3F46; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + /* Qt-specific properties for positioning the dropdown button */ + subcontrol-origin: padding; + subcontrol-position: center right; + /* Standard CSS would use absolute positioning */ + position: relative; +} + +/* Qt-specific selector for ComboBox arrow */ +QComboBox::down-arrow { + width: 12px; + height: 12px; + /* Qt-specific property for displaying an image */ + image: url(:/icons/down_arrow.png); + /* Standard CSS would use background-image */ + background-image: url(:/icons/down_arrow.png); + background-position: center; + background-repeat: no-repeat; + background-size: contain; +} + +/* Tab Widget Styles */ +QTabWidget::pane { + border: 1px solid #3F3F46; + background-color: #1E1E1E; +} + +QTabBar::tab { + background-color: #2D2D30; + border: 1px solid #3F3F46; + border-bottom: none; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + padding: 6px 12px; + color: #E0E0E0; + min-width: 80px; +} + +QTabBar::tab:selected { + background-color: #007ACC; + color: #FFFFFF; +} + +QTabBar::tab:hover { + background-color: #3E3E42; +} + +/* Scroll Bar Styles */ +QScrollBar:vertical { + background-color: #1E1E1E; + width: 12px; + border-radius: 6px; + margin: 0px; +} + +QScrollBar::handle:vertical { + background-color: #3E3E42; + border-radius: 6px; + min-height: 20px; +} + +QScrollBar::handle:vertical:hover { + background-color: #007ACC; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + height: 0px; +} + +QScrollBar:horizontal { + background-color: #1E1E1E; + height: 12px; + border-radius: 6px; + margin: 0px; +} + +QScrollBar::handle:horizontal { + background-color: #3E3E42; + border-radius: 6px; + min-width: 20px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #007ACC; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + width: 0px; +} + +/* Menu Styles */ +QMenuBar { + background-color: #1E1E1E; + border-bottom: 1px solid #3F3F46; + color: #E0E0E0; +} + +QMenuBar::item { + background: transparent; + padding: 6px 10px; +} + +QMenuBar::item:selected { + background-color: #3E3E42; + color: #FFFFFF; +} + +QMenu { + background-color: #1E1E1E; + border: 1px solid #3F3F46; + padding: 2px; +} + +QMenu::item { + padding: 6px 25px 6px 20px; + border-radius: 4px; + margin: 2px; +} + +QMenu::item:selected { + background-color: #007ACC; + color: #FFFFFF; +} + +QMenu::separator { + height: 1px; + background-color: #3F3F46; + margin: 4px 10px; +}