jdxi_editor.jdxi.style
======================
.. py:module:: jdxi_editor.jdxi.style
Submodules
----------
.. toctree::
:maxdepth: 1
/autoapi/jdxi_editor/jdxi/style/factory/index
/autoapi/jdxi_editor/jdxi/style/icons/index
/autoapi/jdxi_editor/jdxi/style/jdxi/index
/autoapi/jdxi_editor/jdxi/style/theme_manager/index
Classes
-------
.. autoapisummary::
jdxi_editor.jdxi.style.JDXiStyle
jdxi_editor.jdxi.style.JDXiThemeManager
Functions
---------
.. autoapisummary::
jdxi_editor.jdxi.style.get_theme_manager
Package Contents
----------------
.. py:class:: JDXiStyle
Central style definitions for JD-Xi Manager
.. py:attribute:: TRACK_LABEL_WIDTH
:value: 70
.. py:attribute:: TRACK_BUTTON_WIDTH
:value: 20
.. py:attribute:: TRACK_SPINBOX_WIDTH
:value: 40
.. py:attribute:: PWM_WIDGET_HEIGHT
:value: 250
.. py:attribute:: ADSR_PLOT_WIDTH
:value: 300
.. py:attribute:: ADSR_PLOT_HEIGHT
:value: 200
.. py:attribute:: INSTRUMENT_IMAGE_WIDTH
:value: 350
.. py:attribute:: INSTRUMENT_IMAGE_HEIGHT
:value: 200
.. py:attribute:: TITLE_TEXT
:value: '#FFFFFF'
.. py:attribute:: BACKGROUND
:value: '#000000'
.. py:attribute:: BACKGROUND_GRADIENT
:value: 'qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #1A1A1A)'
.. py:attribute:: BACKGROUND_PRESSED
:value: '#666666'
.. py:attribute:: BUTTON_BACKGROUND
:value: '#222222'
.. py:attribute:: BUTTON_BACKGROUND_PRESSED
:value: '#333333'
.. py:attribute:: FOREGROUND
:value: '#FFFFFF'
.. py:attribute:: PADDING
:value: 10
.. py:attribute:: SPACING
:value: 10
.. py:attribute:: ICON_PIXMAP_SIZE
:value: 30
.. py:attribute:: TRACK_ICON_PIXMAP_SIZE
:value: 50
.. py:attribute:: BUTTON_PADDING
:value: 1
.. py:attribute:: ACCENT
:value: '#FF2200'
.. py:attribute:: ACCENT_HOVER
:value: '#FF4400'
.. py:attribute:: ACCENT_ANALOG
:value: '#00A0E9'
.. py:attribute:: ACCENT_ANALOG_HOVER
:value: '#00C0FF'
.. py:attribute:: ACCENT_GLOW
:value: '#FF6666'
.. py:attribute:: ACCENT_ANALOG_GLOW
:value: '#66C0FF'
.. py:attribute:: BORDER
:value: '#333333'
.. py:attribute:: SLIDER_HANDLE
:value: '#000000'
.. py:attribute:: SLIDER_HANDLE_BORDER
:value: '#666666'
.. py:attribute:: SLIDER_GROOVE
:value: '#666666'
.. py:attribute:: SLIDER_NEON
:value: '#ff1a1a'
.. py:attribute:: SLIDER_NEON_GRADIENT_STOP
:value: '#660000'
.. py:attribute:: SLIDER_NEON_ANALOG
:value: '#1a1aff'
.. py:attribute:: SLIDER_NEON_GRADIENT_STOP_ANALOG
:value: '#000066'
.. py:attribute:: SLIDER_NEON_GRADIENT
:value: 'qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #660000, stop:0.5 #ff1a1a, stop:1 #ff3333)'
.. py:attribute:: SLIDER_NEON_ANALOG_GRADIENT
:value: 'qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #000066, stop:0.5 #1a1aff, stop:1 #3399ff)'
.. py:attribute:: ACCENT_PRESSED
:value: '#FF6666'
.. py:attribute:: FONT_SIZE
:value: '10'
.. py:attribute:: ACCENT_ANALOG_PRESSED
:value: '#417ffa'
.. py:attribute:: BUTTON_ROUND_RADIUS
:value: 15
.. py:attribute:: BUTTON_RECT_RADIUS
:value: 6
.. py:attribute:: BUTTON_BORDER_WIDTH
:value: 4
.. py:attribute:: HANDLE_SIZE
:value: '6px'
.. py:attribute:: GROOVE_WIDTH
:value: '2px'
.. py:attribute:: ICON_SIZE
:value: 20
.. py:attribute:: TAB_BUTTON_RECT_RADIUS
:value: 6
.. py:attribute:: MAX_RULER_HEIGHT
:value: 200
.. py:attribute:: TRACK_HEIGHT_MINIMUM
:value: 40
.. py:attribute:: FONT_RED
:value: '#d51e35'
.. py:attribute:: FONT_FAMILY
:value: 'Orbitron'
.. py:attribute:: FONT_FAMILY_MONOSPACE
:value: 'Consolas'
.. py:attribute:: FONT_SIZE_MAIN_TABS
:value: '14px'
.. py:attribute:: FONT_WEIGHT_BOLD
:value: 'bold'
.. py:attribute:: FONT_WEIGHT_NORMAL
:value: 'normal'
.. py:attribute:: GREY
:value: '#CCCCCC'
.. py:attribute:: BUTTON_ROUND
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 4px solid #333333;
border-radius: 15px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 4px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BORDER_PRESSED
:value: '#2D2D2D'
.. py:attribute:: BUTTON_ROUND_SELECTED
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 4px solid #333333;
border-radius: 15px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 4px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_ROUND_ACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #222222;
border: 4px solid #FF4400;
border-radius: 15px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 4px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_ROUND_SMALL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #333333;
border: 1px solid black;
border-radius: 10px;
color: #AAAAAA;
font-family: "Orbitron";
font-size: 10;
padding: 1px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 1px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 1px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_RECT
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 4px solid #333333;
border-radius: 6px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 4px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_RECT_SELECTED
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 4px solid #333333;
border-radius: 6px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 4px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_RECT_ACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #222222;
border: 4px solid #FF4400;
border-radius: 6px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #FF4400;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #FF4400);
border: 4px solid #FF4400;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_RECT_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 4px solid #00A0E9;
border-radius: 6px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #00C0FF;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #00C0FF);
border: 4px solid #00C0FF;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_ANALOG_ACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #222222;
border: 4px solid #00A0E9;
border-radius: 6px;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #00C0FF;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #00C0FF);
border: 4px solid #00C0FF;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #666666;
border: 4px solid #417ffa;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_WAVEFORM
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #222222;
border: 2px solid #666666;
border-radius: 12px;
color: #CCCCCC;
font-family: "Orbitron";
font-size: 10;
padding: 1px;
}
QPushButton:hover {
background-color: #444444;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #444444);
border: 2px solid #444444;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #333333;
border: 2px solid #FF6666;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #333333);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_WAVEFORM_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Orbitron;
background-color: #222222;
border: 4px solid #666666;
border-radius: 3px;
color: #CCCCCC;
font-family: "Orbitron";
font-size: 10;
padding: 1px;
}
QPushButton:hover {
background-color: #444444;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #444444);
border: 4px solid #444444;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #333333;
border: 4px solid #00A0E9;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #333333);
}
"""
.. raw:: html
.. py:attribute:: CREDITS_LABEL_STYLE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
/* QLabels */
QLabel {
font-family: Orbitron;
color: 'black';
background: #FFFFFF;
}
"""
.. raw:: html
.. py:attribute:: EDITOR
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QWidget {
font-family: Orbitron;
background-color: #000000;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 10;
padding: 1px;
}
QGroupBox {
font-family: Orbitron;
width: 200px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Orbitron;
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #ff1a1a; /* Neon red border */
width: 10px; /* More rectangular */
height: 10px;
margin: -8px;
margin-bottom: 2px;
margin-top: 1px;
border-radius: 5px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical:disabled:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
font-family: Orbitron;
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #ff1a1a;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: -8px;
margin-right: 8px;
}
QSlider::horizontal {
margin-left: 6px;
margin-right: 6x;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #ff3333;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #ff1a1a;
border-radius: 3px;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
QGroupBox {
font-family: Orbitron;
border: none;
border-top: 1px solid #FF2200;
border-radius: 3px;
margin-top: 1px;
width: 200px;
padding: 10px;
}
QPushButton {
width: 100px;
}
QGroupBox[adsr="true"] {
min-height: 300px; /* Reduced height for horizontal layout */
width: 200px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
margin: 1px 0;
border-radius: 4px;
}
QSlider::handle:vertical:hover {
border-color: #FF4400;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 1px;
color: #FFFFFF;
font-weight: normal;
}
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QPushButton:hover, QPushButton:checked {
background-color: #FF2200;
color: #000000;
}
QComboBox, QScrollBar {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QComboBox {
width: 100px;
}
QComboBox:disabled {
color: #333333;
}
QScrollBar::handle {
background: #666666;
border-radius: 3px;
}
QScrollBar::handle:hover {
border: 2px solid #FF2200;
}
QSlider::groove:horizontal {
background: #666666;
height: 6px;
border-radius: 2px;
}
QSlider::handle:horizontal{
background: #000000;
border: 3px solid #ff1a1a; /* Neon red border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
QSlider::handle:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
width: 18px;
height: 12px;
margin: -9px 0;
border-radius: 9px;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
QSlider::handle:vertical:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 18px; /* More rectangular */
height: 12px;
margin: -9px;
border-radius: 4px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal:disabled {
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
/* QLabels */
QLabel {
color: #FFFFFF;
font-family: Orbitron;
}
QSlider::horizontal {
margin-left: 5px;
margin-right: 5px;
}
QLabel { width: 100px; }
"""
.. raw:: html
.. py:attribute:: EDITOR_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QWidget {
font-family: Orbitron;
background-color: #000000;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 10;
padding: 1px;
}
QGroupBox {
font-family: Orbitron;
width: 200px;
border: none;
border-top: 1px solid #00A0E9;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Orbitron;
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #ff1a1a; /* Neon red border */
width: 10px; /* More rectangular */
height: 10px;
margin: -8px;
margin-bottom: 2px;
margin-top: 1px;
border-radius: 5px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical:disabled:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
font-family: Orbitron;
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #ff1a1a;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: -8px;
margin-right: 8px;
}
QSlider::horizontal {
margin-left: 6px;
margin-right: 6x;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #ff3333;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #ff1a1a;
border-radius: 3px;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
QGroupBox {
font-family: Orbitron;
border: none;
border-top: 1px solid #00A0E9;
border-radius: 3px;
margin-top: 1px;
width: 200px;
padding: 10px;
}
QPushButton {
width: 100px;
}
QGroupBox[adsr="true"] {
min-height: 300px; /* Reduced height for horizontal layout */
width: 200px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
margin: 1px 0;
border-radius: 4px;
}
QSlider::handle:vertical:hover {
border-color: #00C0FF;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 1px;
color: #FFFFFF;
font-weight: normal;
}
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #00A0E9;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QPushButton:hover, QPushButton:checked {
background-color: #00A0E9;
color: #000000;
}
QComboBox, QScrollBar {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #00A0E9;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QComboBox {
width: 100px;
}
QComboBox:disabled {
color: #333333;
}
QScrollBar::handle {
background: #666666;
border-radius: 3px;
}
QScrollBar::handle:hover {
border: 2px solid #00A0E9;
}
QSlider::groove:horizontal {
background: #666666;
height: 6px;
border-radius: 2px;
}
QSlider::handle:horizontal{
background: #000000;
border: 3px solid #1a1aff; /* Neon red border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
QSlider::handle:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
width: 18px;
height: 12px;
margin: -9px 0;
border-radius: 9px;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #000066, stop:1 #1a1aff);
border-radius: 3px;
}
QSlider::handle:vertical:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 18px; /* More rectangular */
height: 12px;
margin: -9px;
border-radius: 4px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #000066, stop:1 #1a1aff);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal:disabled {
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
/* QLabels */
QLabel {
color: #FFFFFF;
font-family: Orbitron;
}
QSlider::horizontal {
margin-left: 5px;
margin-right: 5px;
}
QLabel { width: 100px; }
"""
.. raw:: html
.. py:attribute:: EDITOR_TITLE_LABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: Orbitron, sans-serif;
font-size: 20px;
font-weight: bold;
letter-spacing: 2px;
color: #FF2200;
"""
.. raw:: html
.. py:attribute:: ANALOG_SECTION_HEADER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: Orbitron, sans-serif;
font-weight: bold;
font-size: 18px;
color: #00A0E9;
letter-spacing: 1px;
"""
.. raw:: html
.. py:attribute:: DIGITAL_SECTION_HEADER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: Orbitron, sans-serif;
font-weight: bold;
font-size: 18px;
color: #FF2200;
letter-spacing: 1px;
"""
.. raw:: html
.. py:attribute:: INSTRUMENT
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #1A1A1A);
}
QWidget {
font-family: Orbitron;
margin: 0px;
padding: 0px;
background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #1A1A1A);
color: white;
}
QMenuBar {
background-color: black;
color: white;
}
QMenuBar::item:selected {
background-color: #333333;
}
QMenu {
background-color: black;
color: white;
}
QMenu::item:selected {
background-color: #333333;
}
QGroupBox {
font-family: Orbitron;
border: none;
border-top: 1px solid #333333;
margin: 1px;
padding: 1px;
}
QGroupBox::title {
font-family: Orbitron;
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 1px;
background-color: black;
}
QLabel {
background-color: transparent;
color: white;
}
QStatusBar {
background-color: black;
color: "#FF2200";
}
QSlider {
margin-bottom: 2px;
margin-top: 2px;
}
"""
.. raw:: html
.. py:attribute:: INSTRUMENT_IMAGE_LABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
height: 150px;
background-color: transparent;
border: none;
}
"""
.. raw:: html
.. py:attribute:: LOG_VIEWER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow {
background-color: #2E2E2E;
}
QWidget {
background-color: #2E2E2E;
color: #FFFFFF;
font-family: 'Myriad Pro';
}
QTextEdit {
background-color: #1A1A1A;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 5px;
font-family: 'Consolas';
}
QPushButton {
background-color: #3D3D3D;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 5px 15px;
font-family: 'Myriad Pro';
}
QPushButton:hover {
background-color: #4D4D4D;
border: 1px solid #FF3333;
}
QPushButton:pressed {
background-color: #2D2D2D;
}
"""
.. raw:: html
.. py:attribute:: MIDI_MESSAGE_MONITOR
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTextEdit {
font-family: 'Consolas', 'Courier New', monospace;
background-color: #1E1E1E;
color: #FFCC00;
border: 1px solid #FF2200;
border-radius: 4px;
padding: 5px;
font-size: 11px;
}
QTextEdit:focus {
border: 2px solid #FF2200;
background-color: #252525;
}
"""
.. raw:: html
.. py:attribute:: MIXER_LABEL_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-size: 16px;
font-weight: bold;
color: #00A0E9;
"""
.. raw:: html
.. py:attribute:: MIXER_LABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
font-family: Orbitron;
font-size: 16px;
font-weight: bold;
color: #FF2200;
}
"""
.. raw:: html
.. py:attribute:: PROGRAM_PRESET_GROUPS
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Orbitron;
width: 300px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}"""
.. raw:: html
.. py:attribute:: PROGRAM_PRESET_GROUP_WIDTH
:value: 300
.. py:attribute:: PROGRESS_BAR
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QProgressBar {
background-color: #333;
color: white;
font-family: 'Consolas';
border: 2px solid #444;
border-radius: 10px;
text-align: center;
}
QProgressBar::chunk {
background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 10px;
}
"""
.. raw:: html
.. py:attribute:: SLIDER_VERTICAL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Orbitron;
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #ff1a1a; /* Neon red border */
width: 10px; /* More rectangular */
height: 10px;
margin: -8px;
margin-bottom: 2px;
margin-top: 1px;
border-radius: 5px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical:disabled:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
font-family: Orbitron;
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #ff1a1a;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: -8px;
margin-right: 8px;
}
QSlider::horizontal {
margin-left: 6px;
margin-right: 6x;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #ff3333;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #ff1a1a;
border-radius: 3px;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
/* QLabels */
QLabel {
color: "#d51e35";
}
"""
.. raw:: html
.. py:attribute:: SPLASH_SCREEN
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QWidget {
font-family: Orbitron;
background-color: #000000;
color: #FFFFFF;
font-family: "Orbitron";
font-size: 14px;
padding: 1px;
}
QGroupBox {
font-family: Orbitron;
width: 200px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Orbitron;
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #ff1a1a; /* Neon red border */
width: 10px; /* More rectangular */
height: 10px;
margin: -8px;
margin-bottom: 2px;
margin-top: 1px;
border-radius: 5px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical:disabled:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
font-family: Orbitron;
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #ff1a1a;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: -8px;
margin-right: 8px;
}
QSlider::horizontal {
margin-left: 6px;
margin-right: 6x;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #ff3333;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #ff1a1a;
border-radius: 3px;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
QGroupBox {
font-family: Orbitron;
border: none;
border-top: 1px solid #FF2200;
border-radius: 3px;
margin-top: 1px;
width: 200px;
padding: 10px;
}
QPushButton {
width: 100px;
}
QGroupBox[adsr="true"] {
min-height: 300px; /* Reduced height for horizontal layout */
width: 200px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
margin: 1px 0;
border-radius: 4px;
}
QSlider::handle:vertical:hover {
border-color: #FF4400;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 1px;
color: #FFFFFF;
font-weight: bold;
}
QPushButton {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QPushButton:hover, QPushButton:checked {
background-color: #FF2200;
color: #000000;
}
QComboBox, QScrollBar {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QComboBox {
width: 100px;
}
QComboBox:disabled {
color: #333333;
}
QScrollBar::handle {
background: #666666;
border-radius: 3px;
}
QScrollBar::handle:hover {
border: 2px solid #FF2200;
}
QSlider::groove:horizontal {
background: #666666;
height: 6px;
border-radius: 2px;
}
QSlider::handle:horizontal{
background: #000000;
border: 3px solid #ff1a1a; /* Neon red border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
QSlider::handle:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
width: 18px;
height: 12px;
margin: -9px 0;
border-radius: 9px;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
QSlider::handle:vertical:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 18px; /* More rectangular */
height: 12px;
margin: -9px;
border-radius: 4px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal:disabled {
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
/* QLabels */
QLabel {
color: #FFFFFF;
font-family: Orbitron;
}
QSlider::horizontal {
margin-left: 5px;
margin-right: 5px;
}
QLabel { width: 100px; }
"""
.. raw:: html
.. py:attribute:: SPLITTER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QSplitter::handle {
background-color: #444;
border: 1px solid #666;
}
QSplitter::handle:vertical {
height: 6px;
}
QSplitter::handle:horizontal {
width: 6px;
}
"""
.. raw:: html
.. py:attribute:: TABS
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab {
font-family: Orbitron;
background: #000000;
color: white;
padding: 1px 1px;
margin: 1px;
border: 2px solid #666666;
border-radius: 6px;
font-family: "Orbitron";
font-size: 12px;
}
QTabBar::tab:selected {
font-family: Orbitron;
background: #222222;
color: white;
border: 2px solid #FF2200;
font-family: "Orbitron";
font-size: 12px;
}
QTabBar {
qproperty-drawBase: 0;
alignment: center;
}
QTabBar::tab:hover {
background: #222222;
border: 2px solid #ff9999;
font-family: "Orbitron";
font-size: 12px;
}
QTabWidget {
font-family: Orbitron;
border: none
}
QTabWidget::pane {
border: none;
}
"""
.. raw:: html
.. py:attribute:: TABS_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab {
font-family: Orbitron;
background: #000000;
color: white;
padding: 1px 1px;
margin: 1px;
border: 2px solid #666666;
border-radius: 6px;
font-family: "Orbitron";
font-size: 12px;
}
QTabBar::tab:selected {
font-family: Orbitron;
background: #222222;
color: white;
border: 2px solid #00A0E9;
font-family: "Orbitron";
font-size: 12px;
}
QTabBar {
qproperty-drawBase: 0;
alignment: center;
}
QTabBar::tab:hover {
background: #00A0C1;
border: 2px solid #00A0E9;
font-family: "Orbitron";
font-size: 12px;
}
QTabWidget {
font-family: Orbitron;
border: none
}
QTabWidget::pane {
border: none;
}
"""
.. raw:: html
.. py:attribute:: TABS_DRUMS
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab {
font-family: Orbitron;
background: #000000;
color: white;
padding: 1px 1px;
margin: 1px;
border: 2px solid #666666;
border-radius: 6px;
font-family: "Orbitron";
font-size: 12px;
}
QTabBar::tab:selected {
font-family: Orbitron;
background: #222222;
color: white;
border: 2px solid #ff6666;
font-family: "Orbitron";
font-size: 12px;
}
QTabBar {
qproperty-drawBase: 0;
alignment: center;
}
QTabBar::tab:hover {
background: #222222;
border: 2px solid #ff9999;
font-family: "Orbitron";
font-size: 12px;
}
QTabWidget {
font-family: Orbitron;
border: none
}
QTabWidget::pane {
border: none;
}
"""
.. raw:: html
.. py:attribute:: TABS_MAIN_EDITOR
.. py:attribute:: SLIDER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QSlider::handle:horizontal{
background: #000000;
border: 3px solid #ff1a1a; /* Neon red border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
QSlider::handle:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #666666;
width: 18px;
height: 12px;
margin: -9px 0;
border-radius: 9px;
}
QSlider::handle:vertical:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 18px; /* More rectangular */
height: 12px;
margin: -9px;
border-radius: 4px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal {
background: qlineargradient(x1:1, y1:0, x2:0, y2:0,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal:disabled {
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
/* QLabels */
QLabel {
color: #FF2200;
}
QSlider::horizontal {
margin-left: 5px;
margin-right: 5px;
}
"""
.. raw:: html
.. py:attribute:: SLIDER_DISABLED
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QSlider::handle:horizontal{
background: #000000;
border: 3px solid #333333; /* Neon red border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
QSlider::handle:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 8px; /* More rectangular */
height: 2px;
margin: -6px;
padding: 1px;
border-radius: 4px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
QSlider::handle:vertical {
background: #000000;
border: 2px solid #333333;
width: 18px;
height: 12px;
margin: -9px 0;
border-radius: 9px;
}
QSlider::handle:vertical:disabled{
background: #000000;
border: 2px solid #333333; /* grey border */
width: 18px; /* More rectangular */
height: 12px;
margin: -9px;
border-radius: 4px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal {
background: qlineargradient(x1:1, y1:0, x2:0, y2:0,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:horizontal:disabled {
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:horizontal {
background: #222;
border-radius: 3px;
}
/* QLabels */
QLabel {
color: #FF2200;
}
QSlider::horizontal {
margin-left: 5px;
margin-right: 5px;
}
"""
.. raw:: html
.. py:attribute:: TRANSPARENT
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow, QWidget, QMenuBar {
background-color: transparent;
color: "#d51e35";
}
QSlider {
border: #333333;
}
QPushButton {
background-color: transparent;
border: 1px solid red;
color: "#d51e35";
}
QPushButton:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
}
QStatusBar {
background-color: transparent;
color: "#d51e35";
}
"""
.. raw:: html
.. py:attribute:: TRANSPARENT_WHITE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow, QWidget, QMenuBar {
background-color: transparent;
color: "#d51e35";
}
QLabel {
background-color: transparent;
color: "white";
}
QPushButton {
background-color: transparent;
border: 1px solid red;
color: "#d51e35";
}
QPushButton:hover {
background-color: rgba(255, 0, 0, 30);
}
QStatusBar {
background-color: transparent;
color: "#d51e35";
}
"""
.. raw:: html
.. py:attribute:: STATUS_INDICATOR_ACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
background-color: #FF2200;
border-radius: 8px;
min-width: 12px;
min-height: 12px;
max-width: 12px;
max-height: 12px;
}
"""
.. raw:: html
.. py:attribute:: STATUS_INDICATOR_INACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
background-color: #333333;
border: 1px solid #666666;
border-radius: 8px;
min-width: 12px;
min-height: 12px;
max-width: 12px;
max-height: 12px;
}
"""
.. raw:: html
.. py:attribute:: STATUS_INDICATOR_ANALOG_ACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
background-color: #00A0E9;
border-radius: 8px;
min-width: 12px;
min-height: 12px;
max-width: 12px;
max-height: 12px;
}
"""
.. raw:: html
.. py:attribute:: BUTTON_GLOW_RED
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
border: 2px solid #FF2200;
background-color: #222222;
}
QPushButton:hover {
border: 2px solid #FF4400;
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #330000, stop:1 #FF4400);
}
QPushButton:pressed {
border: 2px solid #FF6666;
background-color: #333333;
}
"""
.. raw:: html
.. py:attribute:: BUTTON_GLOW_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
border: 2px solid #00A0E9;
background-color: #222222;
}
QPushButton:hover {
border: 2px solid #00C0FF;
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #003333, stop:1 #00C0FF);
}
QPushButton:pressed {
border: 2px solid #417ffa;
background-color: #333333;
}
"""
.. raw:: html
.. py:attribute:: ADSR_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Orbitron;
width: 300px;
border: none;
border-top: 1px solid #00A0E9;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Orbitron;
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
border-radius: 3px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #1a1aff; /* Neon blue border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
margin-bottom: 2px;
margin-top: 2px;
border-radius: 5px;
padding: 1px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #000066, stop:1 #1a1aff);
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #1a1aff;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: 2px;
margin-right: 2px;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #3333ff;
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #00A0E9;
border-radius: 3px;
padding: 1px;
margin: -2px;
width: 40px;
color: #00A0E9;
}
/* QLabels */
QLabel {
color: #00A0E9;
}
"""
.. raw:: html
.. py:attribute:: ADSR
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Orbitron;
width: 200px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Orbitron;
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #ff1a1a; /* Neon red border */
width: 10px; /* More rectangular */
height: 10px;
margin: -8px;
margin-bottom: 2px;
margin-top: 1px;
border-radius: 5px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical:disabled:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
font-family: Orbitron;
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #ff1a1a;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: -8px;
margin-right: 8px;
}
QSlider::horizontal {
margin-left: 6px;
margin-right: 6x;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #ff3333;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #ff1a1a;
border-radius: 3px;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
/* QLabels */
QLabel {
color: "#d51e35";
}
"""
.. raw:: html
.. py:attribute:: ADSR_DISABLED
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QSlider {
font-family: Orbitron;
}
QLabel {
font-family: Orbitron;
}
/* Groove (Track) */
QSlider::groove:vertical {
background: #111; /* Dark background */
width: 6px;
border-radius: 3px;
}
/* Handle (Knob) */
QSlider::handle:vertical {
background: black;
border: 2px solid #333333; /* Neon red border */
width: 10px; /* More rectangular */
height: 10px;
margin: -8px;
margin-bottom: 2px;
margin-top: 2px;
border-radius: 5px;
}
/* Handle (Knob) */
QSlider::handle:vertical:disabled {
background: black;
border: 2px solid #333333; /* grey border */
width: 10px; /* More rectangular */
height: 10px;
margin: -10px;
border-radius: 5px;
}
/* greyed out groove */
QSlider::sub-page:vertical:disabled {
background: #333333;
border-radius: 3px;
}
/* Glowing effect when moving */
QSlider::sub-page:vertical {
font-family: Orbitron;
background: #333333;
border-radius: 3px;
}
/* Unfilled portion */
QSlider::add-page:vertical {
background: #222;
border-radius: 3px;
}
/* Tick Marks (Small dashes on both sides) */
QSlider::tick-mark {
background: #333333;
width: 4px;
height: 2px;
border-radius: 1px;
margin-left: -8px;
margin-right: 8px;
}
QSlider::horizontal {
margin-left: 6px;
margin-right: 6x;
}
/* Handle Hover Effect */
QSlider::handle:vertical:hover {
border: 2px solid #ff1a1a;
}
/* Spin Box */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: 1px solid #ff1a1a;
border-radius: 3px;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
/* QLabels */
QLabel {
color: "#d51e35";
}
"""
.. raw:: html
.. py:attribute:: ADSR_PLOT
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QWidget {
background-color: #333333;
}
"""
.. raw:: html
.. py:attribute:: COMBO_BOX
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QComboBox {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
/* Style for the dropdown button */
QComboBox::drop-down {
border: none;
width: 20px;
height: 20px;
}
/* Custom small down arrow */
QComboBox::down-arrow {
width: 16px; /* Adjust arrow size */
height: 10px;
}
/* Custom small up arrow (if needed for editable combobox) */
QComboBox::up-arrow {
width: 16px; /* Adjust arrow size */
height: 10px;
}
/* Scrollbar styling */
QScrollBar:vertical {
background: black;
border: 2px solid #ff4500;
width: 20px;
border-radius: 5px;
}
"""
.. raw:: html
.. py:attribute:: COMBO_BOX_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QComboBox {
font-family: Orbitron;
background-color: #000000;
border: 1px solid #00A0E9;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
/* Style for the dropdown button */
QComboBox::drop-down {
border: none;
width: 20px;
height: 20px;
}
/* Custom small down arrow */
QComboBox::down-arrow {
width: 16px; /* Adjust arrow size */
height: 10px;
}
/* Custom small up arrow (if needed for editable combobox) */
QComboBox::up-arrow {
width: 16px; /* Adjust arrow size */
height: 10px;
}
/* Scrollbar styling */
QScrollBar:vertical {
background: black;
border: 2px solid #ff4500;
width: 20px;
border-radius: 5px;
}
"""
.. raw:: html
.. py:attribute:: LABEL_SUB
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Orbitron";
font-size: 13px;
color: #d51e35;
font-weight: bold;
"""
.. raw:: html
.. py:attribute:: LABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Orbitron";
font-size: 14px;
color: #d51e35;
font-weight: bold;
background: transparent;
"""
.. raw:: html
.. py:attribute:: QLABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
font-family: "Orbitron";
font-size: 14px;
color: #d51e35;
font-weight: bold;
background: transparent;
}
"""
.. raw:: html
.. py:attribute:: QLINEEDIT
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLineEdit {
font-family: "Orbitron";
font-size: 12px;
color: #FFFFFF;
background: #1a1a1a;
font-weight: bold;
}
"""
.. raw:: html
.. py:attribute:: KEYBOARD_DRUM_LABELS
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
color: #808080;
font-size: 7px;
font-family: monospace;
padding: 2px;
min-width: 30px;
}
"""
.. raw:: html
.. py:attribute:: INSTRUMENT_TITLE_LABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Consolas";
color: #FFBB33;
font-size: 16px;
font-weight: bold;
QGroupBox {
height: 60;
border: 2px solid black;
border-radius: 5px;
padding: 1px;
margin: 1px;
background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1,
stop: 0 #321212,
stop: 0.3 #331111,
stop: 0.5 #551100,
stop: 0.7 #331111,
stop: 1 #321212
);
}
"""
.. raw:: html
.. py:attribute:: INSTRUMENT_SUBTITLE_LABEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Consolas";
color: #FFBB33;
font-size: 12px;
font-weight: bold;
"""
.. raw:: html
.. py:attribute:: LABEL_SYNTH_PART
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Orbitron";
font-size: 13px;
color: "#d51e35"; /* Base red */
font-weight: bold;
"""
.. raw:: html
.. py:attribute:: LABEL_ANALOG_SYNTH_PART
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Orbitron";
font-size: 13px;
color: #00A0E9; /* Blue for Analog */
font-weight: bold;
"""
.. raw:: html
.. py:attribute:: DRUM_GROUP
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Orbitron;
width: 50px;
height: 60;
}
"""
.. raw:: html
.. py:attribute:: TAB_TITLE_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab:selected:analog {
font-family: Orbitron;
font-size: 13px;
font-weight: bold;
color: #00A0E9;
}
QTabBar::tab:hover:analog {
font-family: Orbitron;
font-size: 13px;
font-weight: bold;
color: #00A0E9;
}
QTabBar::tab:selected {
font-family: Orbitron;
font-size: 13px;
font-weight: bold;
color: #00A0E9;
}
"""
.. raw:: html
.. py:attribute:: GROUP_BOX_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Orbitron;
border: none;
color: #FFFFFF;
border-top: 1px solid #00A0E9;
margin: 10px;
padding: 10px;
}
QGroupBox::title {
font-family: Orbitron;
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 10 10px;
background-color: black;
}
"""
.. raw:: html
.. py:attribute:: PATCH_MANAGER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow {
background-color: #2E2E2E;
font-family: Orbitron;
}
QWidget {
background-color: #2E2E2E;
color: #FFFFFF;
font-family: "Orbitron";
}
QLineEdit {
background-color: #1A1A1A;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 1px;
font-family: 'Consolas';
}
QPushButton {
background-color: #3D3D3D;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 1px 1px;
font-family: "Orbitron";
}
QPushButton:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border: 1px solid #FF3333;
}
QPushButton:pressed {
background-color: #2D2D2D;
}
QLabel {
color: #FFFFFF;
font-family: "Orbitron";
}
"""
.. raw:: html
.. py:attribute:: LABEL_WHEEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
color: red;
font-family: "Orbitron";
}
"""
.. raw:: html
.. py:attribute:: PARTIAL_SWITCH
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QCheckBox {
color: #CCCCCC;
font-size: 10px;
}
QCheckBox::indicator {
width: 16px;
height: 16px;
background: #333333;
border: 1px solid #555555;
border-radius: 8px;
}
QCheckBox::indicator:checked {
background: #666666;
border-color: #FF4444;
}
"""
.. raw:: html
.. py:attribute:: PARTIALS_PANEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Orbitron;
color: #CCCCCC;
height: 60;
font-size: 12px;
border: 0px;
border-top: 2px solid #444444; /* Only top border */
border-radius: 3px;
margin-top: 1px;
padding: 1px;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 1px;
margin-top: 1px;
background-color: #2D2D2D;
}
"""
.. raw:: html
.. py:attribute:: DEBUGGER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow {
background-color: #2E2E2E;
}
QWidget {
background-color: #2E2E2E;
color: #FFFFFF;
font-family: 'Orbitron';
}
QPlainTextEdit {
background-color: #1A1A1A;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 1px;
font-family: 'Consolas';
}
QTextEdit {
background-color: #1A1A1A;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 2px;
font-family: 'Consolas';
}
QPushButton {
background-color: #3D3D3D;
color: #FFFFFF;
border: 1px solid #FF0000;
border-radius: 3px;
padding: 1px 1px;
font-family: "Orbitron";
}
QPushButton:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #660000, stop:1 #ff1a1a);
border: 1px solid #FF3333;
}
QPushButton:pressed {
background-color: #666666;
}
"""
.. raw:: html
.. py:attribute:: SEQUENCER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Orbitron";
font-size: 14px;
color: #d51e35;
font-weight: bold;
background: transparent;
"""
.. raw:: html
.. py:attribute:: PARTS_SELECT
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: Orbitron;
font-size: 14px;
color: #d51e35;
font-weight: bold;
background: transparent;
padding-bottom: 1px;
"""
.. raw:: html
.. py:class:: JDXiThemeManager
Bases: :py:obj:`PySide6.QtCore.QObject`
Centralized theme management for JD-Xi Editor
.. py:attribute:: _instance
:type: Optional[JDXiThemeManager]
:value: None
.. py:attribute:: _initialized
:value: True
.. py:method:: apply_style(widget: PySide6.QtWidgets.QWidget, style: str) -> None
:staticmethod:
Apply a style string to a widget.
:param widget: QWidget to apply style to
:param style: str Style sheet string
.. py:method:: apply_editor_title_label(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply editor title label style
.. py:method:: apply_analog_section_header(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply analog section header style
.. py:method:: apply_digital_section_header(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply digital section header style
.. py:method:: apply_midi_monitor(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply MIDI message monitor style
.. py:method:: apply_status_indicator_active(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply active status indicator style
:param widget: QWidget to style
:param analog: bool If True, use analog (blue) style, else digital (red)
.. py:method:: apply_status_indicator_inactive(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply inactive status indicator style
.. py:method:: apply_button_glow_red(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply red glow button style
.. py:method:: apply_button_glow_analog(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply analog (blue) glow button style
.. py:method:: apply_waveform_button(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply waveform button style
:param widget: QWidget to style
:param analog: bool If True, use analog style, else digital
.. py:method:: apply_instrument_background(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply instrument background gradient style
.. py:method:: apply_editor_style(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply editor style
:param widget: QWidget to style
:param analog: bool If True, use analog editor style, else standard
.. py:method:: apply_instrument_title_label(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply instrument title label style
.. py:method:: apply_mixer_label(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply mixer label style
:param widget: QWidget to style
:param analog: bool If True, use analog mixer label style, else standard
.. py:method:: apply_partial_switch(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply partial switch (checkbox) style
.. py:method:: apply_adsr_style(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply ADSR envelope style
:param widget: QWidget to style
:param analog: bool If True, use analog ADSR style, else standard
.. py:method:: apply_adsr_plot(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply ADSR plot style
.. py:method:: apply_adsr_disabled(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply ADSR disabled style
.. py:method:: apply_tabs_style(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply tabs style
:param widget: QWidget to style
:param analog: bool If True, use analog tabs style, else standard
.. py:method:: apply_transparent(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply transparent style
.. py:method:: apply_debugger_window(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply debugger window style
.. py:method:: apply_combo_box(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None
:staticmethod:
Apply combo box style
:param widget: QWidget to style
:param analog: bool If True, use analog combo box style, else standard
.. py:method:: apply_line_edit(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply line edit style
.. py:method:: apply_button_rect_analog(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply analog rectangular button style (blue)
.. py:method:: apply_button_analog_active(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply analog active button style (blue, active state)
.. py:method:: apply_table_style(widget: PySide6.QtWidgets.QWidget) -> None
:staticmethod:
Apply table style with rounded corners and charcoal embossed cells
.. py:method:: get_application_style() -> str
:staticmethod:
Get the complete application-wide stylesheet.
This combines all the recent styling improvements into a single stylesheet
that can be applied to the QApplication instance.
:return: str Complete stylesheet string
.. py:method:: apply_application_style() -> bool
:staticmethod:
Apply the complete application-wide stylesheet to the QApplication instance.
:return: bool True if successful, False otherwise
.. py:method:: initialize() -> bool
:staticmethod:
Initialize the theme system.
This is the main entry point for theme initialization.
:return: bool True if initialization was successful, False otherwise
.. py:function:: get_theme_manager() -> JDXiThemeManager
Get the singleton ThemeManager instance