jdxi_editor.ui.style.jdxi
=========================
.. py:module:: jdxi_editor.ui.style.jdxi
.. autoapi-nested-parse::
This module defines the `Style` class, which centralizes all style configurations
for the JD-Xi Manager application. It includes color definitions, dimensions, fonts,
and styles for buttons, sliders, tabs, labels, and other UI elements.
.. attribute:: Colors
TITLE_TEXT (str): Color for title text.
BACKGROUND (str): Main background color.
BACKGROUND_PRESSED (str): Background color when a button is pressed.
BUTTON_BACKGROUND (str): Background color for buttons.
FOREGROUND (str): Main foreground color.
ACCENT (str): Primary red accent color.
ACCENT_HOVER (str): Hover color for accent elements.
ACCENT_ANALOG (str): Blue accent color for analog components.
ACCENT_ANALOG_HOVER (str): Hover color for analog accent elements.
BORDER (str): Border color for UI elements.
SLIDER_HANDLE (str): Color of the slider handle.
SLIDER_HANDLE_BORDER (str): Border color of the slider handle.
SLIDER_GROOVE (str): Color of the slider groove.
ACCENT_PRESSED (str): Color of the accent when pressed.
ACCENT_ANALOG_PRESSED (str): Color of the analog accent when pressed.
.. attribute:: Dimensions
BUTTON_ROUND_RADIUS (int): Radius for round buttons.
BUTTON_RECT_RADIUS (int): Radius for rectangular buttons.
BUTTON_BORDER_WIDTH (int): Border width for buttons.
HANDLE_SIZE (str): Size of slider handles.
GROOVE_WIDTH (str): Width of the slider groove.
ICON_SIZE (int): Default icon size.
TAB_BUTTON_RECT_RADIUS (int): Radius for tab buttons.
.. attribute:: Fonts
FONT_FAMILY (str): Default font family.
FONT_SIZE (str): Default font size.
.. attribute:: Button Styles
JDXI_BUTTON_ROUND: Standard round button style.
JDXI_BUTTON_ROUND_SELECTED: Style for selected round buttons.
JDXI_BUTTON_ROUND_ACTIVE: Style for active round buttons.
JDXI_BUTTON_ROUND_SMALL: Small round button style.
JDXI_BUTTON_RECT: Standard rectangular button style.
JDXI_BUTTON_RECT_SELECTED: Style for selected rectangular buttons.
JDXI_BUTTON_RECT_ACTIVE: Style for active rectangular buttons.
JDXI_BUTTON_RECT_ANALOG: Rectangular button style for analog components.
JDXI_BUTTON_ANALOG_ACTIVE: Active analog button style.
JDXI_BUTTON_WAVEFORM: Button style for waveform selection.
JDXI_BUTTON_WAVEFORM_ANALOG: Button style for analog waveform selection.
.. attribute:: Tab Styles
JDXI_TABS: Standard tab button styles.
JDXI_TABS_ANALOG: Tab button styles for analog components.
JDXI_TABS_DRUMS: Tab button styles for drum components.
.. attribute:: Editor Styles
JDXI_EDITOR: Style for the main editor UI.
JDXI_EDITOR_ANALOG: Style for the analog editor UI.
.. attribute:: Additional Styles
JDXI: General application styling.
JDXI_ADSR: Styling for ADSR envelope sliders.
JDXI_LABEL_SUB: Sub-label text style.
JDXI_LABEL: Standard label style.
JDXI_KEYBOARD_DRUM_LABELS: Style for drum labels in the keyboard section.
JDXI_INSTRUMENT_TITLE_LABEL: Style for instrument title labels.
JDXI_LABEL_SYNTH_PART: Style for synthesizer part labels.
JDXI_LABEL_ANALOG_SYNTH_PART: Style for analog synthesizer part labels.
JDXI_DRUM_GROUP: Style for drum group UI elements.
JDXI_PATCH_MANAGER: Styles specific to the patch manager.
JDXI_PARTIAL_SWITCH: Style for partial switch elements.
JDXI_PARTIALS_PANEL: Styling for the panel displaying partials.
JDXI_DEBUGGER: Styles for the debugger window.
JDXI_SEQUENCER: Styling for the sequencer UI.
JDXI_PARTS_SELECT: Style for part selection elements.
Classes
-------
.. autoapisummary::
jdxi_editor.ui.style.jdxi.JDXiUIStyle
Module Contents
---------------
.. py:class:: JDXiUIStyle
Central style definitions for JD-Xi Manager
.. py:attribute:: BUTTON_SEQUENCER_SMALL
:value: 'QPushButton:checked { background-color: #cc0000; color: white; }'
.. py:attribute:: WHITE
:value: '#FFFFFF'
.. py:attribute:: TRACK_LABEL_WIDTH
:value: 70
.. py:attribute:: BUTTON_TRACK_WIDTH
:value: 20
.. py:attribute:: TRACK_SPINBOX_WIDTH
:value: 40
.. py:attribute:: PWM_WIDGET_HEIGHT
:value: 200
.. 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:: BUTTON_WAVEFORM_RADIUS
:value: 8
.. py:attribute:: BUTTON_WAVEFORM_BORDER_WIDTH
:value: 2
.. 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:: BUTTON_BORDER_WIDTH_WAVEFORM
:value: 2
.. 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: 'Segoe UI'
.. 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: '#666666'
.. py:attribute:: BUTTON_ROUND
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Segoe UI;
background-color: #000000;
border: 4px solid #333333;
border-radius: 15px;
color: #FFFFFF;
font-family: "Segoe UI";
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: Segoe UI;
background-color: #000000;
border: 4px solid #333333;
border-radius: 15px;
color: #FFFFFF;
font-family: "Segoe UI";
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: Segoe UI;
background-color: #222222;
border: 4px solid #FF4400;
border-radius: 15px;
color: #FFFFFF;
font-family: "Segoe UI";
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: Segoe UI;
background-color: #333333;
border: 1px solid black;
border-radius: 10px;
color: #AAAAAA;
font-family: "Segoe UI";
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: Segoe UI;
background-color: #000000;
border: 4px solid #333333;
border-radius: 6px;
color: #FFFFFF;
font-family: "Segoe UI";
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
BUTTON_RECT_ANALOG = generate_button_style(
BACKGROUND, BORDER, BUTTON_RECT_RADIUS, FOREGROUND, ACCENT_HOVER, ACCENT_PRESSED
)
.. py:attribute:: BUTTON_RECT_SELECTED
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Segoe UI;
background-color: #000000;
border: 4px solid #333333;
border-radius: 6px;
color: #FFFFFF;
font-family: "Segoe UI";
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: Segoe UI;
background-color: #222222;
border: 4px solid #FF4400;
border-radius: 6px;
color: #FFFFFF;
font-family: "Segoe UI";
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:: STYLE_FOREGROUND
:value: 'color: #FFFFFF;'
.. py:attribute:: BUTTON_RECT_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Segoe UI;
background-color: #000000;
border: 4px solid #00A0E9;
border-radius: 6px;
color: #FFFFFF;
font-family: "Segoe UI";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #00C0FF;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #000066, 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 #000033, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_ANALOG_ACTIVE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Segoe UI;
background-color: #222222;
border: 4px solid #00A0E9;
border-radius: 6px;
color: #FFFFFF;
font-family: "Segoe UI";
font-size: 12px;
padding: 4px;
}
QPushButton:hover {
background-color: #00C0FF;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #000066, 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 #000033, stop:1 #666666);
}
"""
.. raw:: html
.. py:attribute:: BUTTON_WAVEFORM
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QPushButton {
font-family: Segoe UI;
background-color: #222222;
border: 2px solid #666666;
border-radius: 8px;
color: #FFFFFF;
font-family: "Segoe UI";
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: 2px solid #FF4400;
}
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: Segoe UI;
background-color: #222222;
border: 2px solid #00A0E9;
border-radius: 8px;
color: #FFFFFF;
font-family: "Segoe UI";
font-size: 10;
padding: 1px;
}
QPushButton:hover {
background-color: #00C0FF;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #000066, stop:1 #00C0FF);
border: 2px solid #00C0FF;
}
QPushButton:border_pressed, QPushButton:checked {
background-color: #333333;
border: 2px solid #417ffa;
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #000033, stop:1 #333333);
}
"""
.. raw:: html
.. py:attribute:: CREDITS_LABEL_STYLE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
/* QLabels */
QLabel {
font-family: Segoe UI;
color: 'black';
background: #FFFFFF;
}
"""
.. raw:: html
.. py:attribute:: EDITOR
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QWidget {
font-family: Segoe UI;
background-color: #000000;
color: #FFFFFF;
font-family: "Segoe UI";
font-size: 10;
padding: 1px;
}
QGroupBox {
font-family: Segoe UI;
width: 200px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Segoe UI;
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: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #ff1a1a;
border-radius: 0;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
QGroupBox {
font-family: Segoe UI;
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: Segoe UI;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QPushButton:hover, QPushButton:checked {
background-color: #FF2200;
color: #000000;
}
QComboBox {
font-family: Segoe UI;
background-color: #000000;
border: none;
border-top: 2px solid #FF2200;
border-radius: 0;
padding: 1px;
color: #FFFFFF;
width: 100px;
}
QComboBox:disabled {
color: #333333;
}
QScrollBar {
font-family: Segoe UI;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
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: Segoe UI;
}
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: Segoe UI;
background-color: #000000;
color: #FFFFFF;
font-family: "Segoe UI";
font-size: 10;
padding: 1px;
}
QGroupBox {
font-family: Segoe UI;
width: 200px;
border: none;
border-top: 1px solid #00A0E9;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Segoe UI;
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: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #ff1a1a;
border-radius: 0;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
QGroupBox {
font-family: Segoe UI;
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: Segoe UI;
background-color: #000000;
border: 1px solid #00A0E9;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QPushButton:hover, QPushButton:checked {
background-color: #00A0E9;
color: #000000;
}
QComboBox {
font-family: Segoe UI;
background-color: #000000;
border: none;
border-top: 2px solid #00A0E9;
border-radius: 0;
padding: 1px;
color: #FFFFFF;
width: 100px;
}
QComboBox:disabled {
color: #333333;
}
QScrollBar {
font-family: Segoe UI;
background-color: #000000;
border: 1px solid #00A0E9;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
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: Segoe UI;
}
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: Segoe UI, 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: Segoe UI, sans-serif;
font-weight: bold;
font-size: 18px;
color: #00A0E9;
letter-spacing: 1px;
"""
.. raw:: html
.. py:attribute:: DATABASE_TABLE_STYLE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTableWidget {
background-color: #1a1a1a;
border: 1px solid #333333;
border-radius: 8px;
gridline-color: #2a2a2a;
color: #ffffff;
selection-background-color: #3a3a3a;
selection-color: #ffffff;
}
QTableWidget::item {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #2a2a2a,
stop:0.5 #252525,
stop:1 #1f1f1f);
border: 1px solid #1a1a1a;
border-radius: 4px;
padding: 4px;
color: #ffffff;
}
QTableWidget::item:selected {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #3a3a3a,
stop:0.5 #353535,
stop:1 #2f2f2f);
border: 1px solid #4a4a4a;
}
QTableWidget::item:hover {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #323232,
stop:0.5 #2d2d2d,
stop:1 #282828);
border: 1px solid #3a3a3a;
}
QTableWidget::item:focus {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #3a3a3a,
stop:0.5 #353535,
stop:1 #2f2f2f);
border: 1px solid #ff2200;
}
QHeaderView::section {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #2a2a2a,
stop:1 #1f1f1f);
color: #ffffff;
padding: 6px;
border: 1px solid #1a1a1a;
border-radius: 4px;
font-weight: bold;
}
QHeaderView::section:hover {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #323232,
stop:1 #272727);
}
QTableCornerButton::section {
background-color: #1a1a1a;
border: 1px solid #333333;
border-radius: 8px 0 0 0;
}
"""
.. raw:: html
.. py:attribute:: DIGITAL_SECTION_HEADER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: Segoe UI, 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: Segoe UI;
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: Segoe UI;
border: none;
border-top: 1px solid #333333;
margin: 1px;
padding: 1px;
}
QGroupBox::title {
font-family: Segoe UI;
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:: WINDOW_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: none;
border-top: 2px solid #FF2200;
border-radius: 0;
padding: 5px;
font-size: 11px;
}
QTextEdit:focus {
border: none;
border-top: 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: Segoe UI;
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: Segoe UI;
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: Segoe UI;
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: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #ff1a1a;
border-radius: 0;
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: Segoe UI;
background-color: #000000;
color: #FFFFFF;
font-family: "Segoe UI";
font-size: 14px;
padding: 1px;
}
QGroupBox {
font-family: Segoe UI;
width: 200px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Segoe UI;
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: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #ff1a1a;
border-radius: 0;
padding: 1px;
margin: -2px;
color: #ff1a1a;
}
QGroupBox {
font-family: Segoe UI;
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: Segoe UI;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
QPushButton:hover, QPushButton:checked {
background-color: #FF2200;
color: #000000;
}
QComboBox {
font-family: Segoe UI;
background-color: #000000;
border: none;
border-top: 2px solid #FF2200;
border-radius: 0;
padding: 1px;
color: #FFFFFF;
width: 100px;
}
QComboBox:disabled {
color: #333333;
}
QScrollBar {
font-family: Segoe UI;
background-color: #000000;
border: 1px solid #FF2200;
border-radius: 3px;
padding: 1px;
color: #FFFFFF;
}
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: Segoe UI;
}
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: Segoe UI;
background: #000000;
color: white;
padding: 1px 1px;
margin: 1px;
border: 2px solid #666666;
border-radius: 6px;
font-family: "Segoe UI";
font-size: 12px;
}
QTabBar::tab:selected {
font-family: Segoe UI;
background: #222222;
color: white;
border: 2px solid #FF2200;
font-family: "Segoe UI";
font-size: 12px;
}
QTabBar {
qproperty-drawBase: 0;
}
QTabBar::tab:hover {
background: #222222;
border: 2px solid #ff9999;
font-family: "Segoe UI";
font-size: 12px;
}
QTabWidget {
font-family: Segoe UI;
border: none;
}
QTabWidget::pane {
border: none;
}
QTabWidget::tab-bar {
alignment: center;
}
"""
.. raw:: html
.. py:attribute:: TABS_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab {
font-family: Segoe UI;
background: #000000;
color: white;
padding: 1px 1px;
margin: 1px;
border: 2px solid #666666;
border-radius: 6px;
font-family: "Segoe UI";
font-size: 12px;
}
QTabBar::tab:selected {
font-family: Segoe UI;
background: #222222;
color: white;
border: 2px solid #00A0E9;
font-family: "Segoe UI";
font-size: 12px;
}
QTabBar {
qproperty-drawBase: 0;
}
QTabBar::tab:hover {
background: #00A0C1;
border: 2px solid #00A0E9;
font-family: "Segoe UI";
font-size: 12px;
}
QTabWidget {
font-family: Segoe UI;
border: none;
}
QTabWidget::pane {
border: none;
}
QTabWidget::tab-bar {
alignment: center;
}
"""
.. raw:: html
.. py:attribute:: TABS_DRUMS
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab {
font-family: Segoe UI;
background: #000000;
color: white;
padding: 1px 1px;
margin: 1px;
border: 2px solid #666666;
border-radius: 6px;
font-family: "Segoe UI";
font-size: 12px;
}
QTabBar::tab:selected {
font-family: Segoe UI;
background: #222222;
color: white;
border: 2px solid #ff6666;
font-family: "Segoe UI";
font-size: 12px;
}
QTabBar {
qproperty-drawBase: 0;
}
QTabBar::tab:hover {
background: #222222;
border: 2px solid #ff9999;
font-family: "Segoe UI";
font-size: 12px;
}
QTabWidget {
font-family: Segoe UI;
border: none;
}
QTabWidget::pane {
border: none;
}
QTabWidget::tab-bar {
alignment: center;
}
"""
.. 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: Segoe UI;
width: 300px;
border: none;
border-top: 1px solid #00A0E9;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #00A0E9;
border-radius: 0;
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: Segoe UI;
width: 200px;
border: none;
border-top: 1px solid #FF2200;
margin: 1px;
padding: 1px;
}
/* Groove (Track) */
QSlider::groove:vertical {
font-family: Segoe UI;
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: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #ff1a1a;
border-radius: 0;
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: Segoe UI;
}
QLabel {
font-family: Segoe UI;
}
/* 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: Segoe UI;
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 - upper bar only (JD-Xi style) */
QSpinBox, QDoubleSpinBox {
background-color: #222;
border: none;
border-top: 2px solid #ff1a1a;
border-radius: 0;
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: Segoe UI;
background-color: #000000;
border: none;
border-top: 2px solid #FF2200;
border-radius: 0;
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: Segoe UI;
background-color: #000000;
border: none;
border-top: 2px solid #00A0E9;
border-radius: 0;
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: "Segoe UI";
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: "Segoe UI";
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: "Segoe UI";
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: "Segoe UI";
font-size: 12px;
color: #FFFFFF;
background: #1a1a1a;
border: none;
border-top: 2px solid #FF2200;
border-radius: 0;
}
"""
.. raw:: html
.. py:attribute:: QLINEEDIT_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLineEdit {
font-family: "Segoe UI";
font-size: 12px;
color: #FFFFFF;
background: #1a1a1a;
border: none;
border-top: 2px solid #00A0E9;
border-radius: 0;
}
"""
.. 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: 24px;
font-weight: bold;
"""
.. raw:: html
.. py:attribute:: LABEL_SYNTH_PART
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
font-family: "Segoe UI";
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: "Segoe UI";
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: Segoe UI;
width: 50px;
height: 60;
}
"""
.. raw:: html
.. py:attribute:: TAB_TITLE
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #666666;
}
QTabBar::tab:selected {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #FF2200;
}
QTabBar::tab:hover {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #FF2200;
}
QTabBar::tab:disabled {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #666666;
}
QTabWidget::tab-bar {
alignment: center;
}
"""
.. raw:: html
.. py:attribute:: TAB_TITLE_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QTabBar::tab:selected:analog {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #00A0E9;
}
QTabBar::tab:hover:analog {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #00A0E9;
}
QTabBar::tab:selected {
font-family: Segoe UI;
font-size: 13px;
font-weight: bold;
color: #00A0E9;
}
QTabWidget::tab-bar {
alignment: center;
}
"""
.. raw:: html
.. py:attribute:: GROUP_BOX_ANALOG
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QGroupBox {
font-family: Segoe UI;
border: none;
color: #FFFFFF;
border-top: 1px solid #00A0E9;
margin: 10px;
padding: 10px;
}
QGroupBox::title {
font-family: Segoe UI;
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: Segoe UI;
}
QWidget {
background-color: #2E2E2E;
color: #FFFFFF;
font-family: "Segoe UI";
}
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: "Segoe UI";
}
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: "Segoe UI";
}
"""
.. raw:: html
.. py:attribute:: LABEL_WHEEL
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QLabel {
color: red;
font-family: "Segoe UI";
}
"""
.. raw:: html
.. py:attribute:: PARTIAL_SWITCH
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QCheckBox {
color: #666666;
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: Segoe UI;
color: #666666;
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:: WINDOW_DEBUGGER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
QMainWindow {
background-color: #2E2E2E;
}
QWidget {
background-color: #2E2E2E;
color: #FFFFFF;
font-family: 'Segoe UI';
}
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: "Segoe UI";
}
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: "Segoe UI";
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: Segoe UI;
font-size: 14px;
color: #d51e35;
font-weight: bold;
background: transparent;
padding-bottom: 1px;
"""
.. raw:: html
.. py:method:: generate_sequencer_button_style(is_checked: bool, is_current: bool = False, is_selected_bar: bool = False) -> str
:staticmethod:
Generate button style based on state and current step