jdxi_editor.ui.widgets.editor.helper
Helpers to create HBox and VBoxes.
Layout and group helpers are provided by picoui.helpers; this module adds JD-Xi-specific helpers (filter buttons, icons, ADSR styling, etc.) and re-exports picoui helpers under the names used by the rest of the app.
Attributes
Functions
|
create filter button |
|
create qta icon |
|
create button with icon |
|
create widget with given inner layout |
create icon and label |
|
|
create checkbox from spec |
create vbox layout with horizontal layout and widgets below it |
|
|
create icon label |
|
Create icons layout |
|
Generate the ADSR waveform pixmap |
|
Generate the ADSR waveform icon (centered) |
|
create adsr icon |
Create a centered ADSR icon layout (for consistent centering in envelope groups) |
|
create ADSR Group with an hlayout (harmonized for Digital and Analog) |
|
|
Create a standardized envelope group with icon and ADSR widget. |
|
create button with tooltip |
create scrolled area with layout |
|
create form layout with widgets |
|
A named group box with grid layout |
|
Create a group box with form layout and add widgets in one call. |
|
create centered layout with a child layout |
|
|
setup scroll area |
create scroll container |
|
|
create layout with child layout |
|
Transfer all items from a source layout to a target layout. |
create group with widgets |
|
|
create group with widgets |
|
Set button styling (Theme API) and dimensions. Used by Filter mode buttons etc. |
|
|
|
|
|
|
|
Hlayout to squish the slides of the widget together |
create centered layout with stretch either side to squish in widgets |
Module Contents
- jdxi_editor.ui.widgets.editor.helper.create_filter_button(icon_type: str, mode: jdxi_editor.midi.data.digital.filter.DigitalFilterMode) PySide6.QtWidgets.QPushButton[source]
create filter button
- jdxi_editor.ui.widgets.editor.helper.create_icon_from_qta(icon_name: str) PySide6.QtGui.QIcon[source]
create qta icon
- jdxi_editor.ui.widgets.editor.helper.create_button_with_icon(icon_name: str, icon: PySide6.QtGui.QIcon, button_dimensions: jdxi_editor.ui.style.dimensions.Dimensions, icon_dimensions: jdxi_editor.ui.style.dimensions.Dimensions)[source]
create button with icon
- jdxi_editor.ui.widgets.editor.helper.create_widget_with_layout(inner_layout: PySide6.QtWidgets.QHBoxLayout) jdxi_editor.ui.common.QWidget[source]
create widget with given inner layout
- jdxi_editor.ui.widgets.editor.helper.create_icon_and_label(label: str = '', icon: str = '') tuple[PySide6.QtWidgets.QHBoxLayout, PySide6.QtWidgets.QLabel][source]
create icon and label
- jdxi_editor.ui.widgets.editor.helper.create_checkbox_from_spec(spec: picoui.specs.widgets.CheckBoxSpec) PySide6.QtWidgets.QCheckBox[source]
create checkbox from spec
- jdxi_editor.ui.widgets.editor.helper.create_layout_with_inner_layout_and_widgets(inner_layout: PySide6.QtWidgets.QHBoxLayout | jdxi_editor.ui.common.QVBoxLayout | None = None, widgets: list = None, vertical: bool = True) jdxi_editor.ui.common.QVBoxLayout[source]
create vbox layout with horizontal layout and widgets below it
- jdxi_editor.ui.widgets.editor.helper.create_icon_label_with_pixmap(pixmap: PySide6.QtGui.QPixmap) PySide6.QtWidgets.QLabel[source]
create icon label
- jdxi_editor.ui.widgets.editor.helper.create_icons_layout() PySide6.QtWidgets.QHBoxLayout[source]
Create icons layout
- jdxi_editor.ui.widgets.editor.helper.create_adsr_icon_pixmap() PySide6.QtGui.QPixmap[source]
Generate the ADSR waveform pixmap
- jdxi_editor.ui.widgets.editor.helper.create_adsr_icon_label() PySide6.QtWidgets.QLabel[source]
Generate the ADSR waveform icon (centered)
- jdxi_editor.ui.widgets.editor.helper.create_adsr_icon() PySide6.QtGui.QIcon[source]
create adsr icon
- jdxi_editor.ui.widgets.editor.helper.create_centered_adsr_icon_layout() PySide6.QtWidgets.QHBoxLayout[source]
Create a centered ADSR icon layout (for consistent centering in envelope groups)
- jdxi_editor.ui.widgets.editor.helper.create_group_adsr_with_hlayout(name: str, hlayout: PySide6.QtWidgets.QHBoxLayout, analog: bool = False) PySide6.QtWidgets.QGroupBox[source]
create ADSR Group with an hlayout (harmonized for Digital and Analog)
- jdxi_editor.ui.widgets.editor.helper.create_envelope_group(name: str = 'Envelope', icon_layout: PySide6.QtWidgets.QHBoxLayout = None, adsr_widget: jdxi_editor.ui.common.QWidget = None, analog: bool = False) PySide6.QtWidgets.QGroupBox[source]
Create a standardized envelope group with icon and ADSR widget.
The icon is centered horizontally using stretches in an HBoxLayout, and the ADSR widget is placed below it in a VBoxLayout.
- Parameters:
name – Group box title (default: “Envelope”)
icon_layout – Optional icon layout (if None, creates centered ADSR icon)
adsr_widget – ADSR widget to add below the icon
analog – Whether to apply analog styling
- Returns:
QGroupBox with envelope layout
- jdxi_editor.ui.widgets.editor.helper.create_button_with_tooltip(tooltip: str) PySide6.QtWidgets.QPushButton[source]
create button with tooltip
- jdxi_editor.ui.widgets.editor.helper.create_scrolled_area_with_layout() tuple[PySide6.QtWidgets.QScrollArea, jdxi_editor.ui.common.QVBoxLayout][source]
create scrolled area with layout
- jdxi_editor.ui.widgets.editor.helper.create_form_layout_with_widgets(widgets: list) PySide6.QtWidgets.QFormLayout[source]
create form layout with widgets
- jdxi_editor.ui.widgets.editor.helper.create_group_and_grid_layout(group_name: str) tuple[PySide6.QtWidgets.QGroupBox, PySide6.QtWidgets.QGridLayout][source]
A named group box with grid layout
- jdxi_editor.ui.widgets.editor.helper.create_group_with_form_layout(widgets: list, label: str = None) tuple[PySide6.QtWidgets.QGroupBox, PySide6.QtWidgets.QFormLayout][source]
Create a group box with form layout and add widgets in one call.
This combines create_group_with_layout() and create_form_layout_with_widgets() for convenience when creating form-based groups.
- Parameters:
widgets – List of widgets to add as rows to the form layout
label – Optional name for the group box
- Returns:
Tuple of (QGroupBox, QFormLayout)
- jdxi_editor.ui.widgets.editor.helper.create_centered_layout_with_child(layout: PySide6.QtWidgets.QFormLayout | PySide6.QtWidgets.QHBoxLayout) PySide6.QtWidgets.QHBoxLayout[source]
create centered layout with a child layout
- jdxi_editor.ui.widgets.editor.helper.create_scroll_area() PySide6.QtWidgets.QScrollArea[source]
setup scroll area
- jdxi_editor.ui.widgets.editor.helper.create_scroll_container() tuple[jdxi_editor.ui.common.QWidget, jdxi_editor.ui.common.QVBoxLayout][source]
create scroll container
- jdxi_editor.ui.widgets.editor.helper.create_layout_with_child(widget_layout: PySide6.QtWidgets.QHBoxLayout) PySide6.QtWidgets.QHBoxLayout[source]
create layout with child layout
- jdxi_editor.ui.widgets.editor.helper.transfer_layout_items(source_layout: PySide6.QtWidgets.QLayout, target_layout: PySide6.QtWidgets.QHBoxLayout | jdxi_editor.ui.common.QVBoxLayout) None[source]
Transfer all items from a source layout to a target layout.
This is useful for avoiding “already has a parent” errors when reusing layouts. All widgets, spacer items, and nested layouts are transferred to the target.
- Parameters:
source_layout – The layout to take items from
target_layout – The layout to add items to
- jdxi_editor.ui.widgets.editor.helper.create_group_with_widgets_in_hlayout(label: str, widgets: list, vertical: bool = False) PySide6.QtWidgets.QGroupBox[source]
create group with widgets
- jdxi_editor.ui.widgets.editor.helper.create_group_with_widgets(label: str, widgets: list, vertical: bool = False) PySide6.QtWidgets.QGroupBox[source]
create group with widgets
- jdxi_editor.ui.widgets.editor.helper.set_button_style_and_dimensions(btn: PySide6.QtWidgets.QPushButton, dimensions: jdxi_editor.ui.style.dimensions.Dimensions, *, analog: bool = False)[source]
Set button styling (Theme API) and dimensions. Used by Filter mode buttons etc.
- jdxi_editor.ui.widgets.editor.helper.add_sublayout_to_layout(layout: jdxi_editor.ui.common.QVBoxLayout | PySide6.QtWidgets.QHBoxLayout, sub_layouts: list[PySide6.QtWidgets.QHBoxLayout | jdxi_editor.ui.common.QVBoxLayout])[source]
- jdxi_editor.ui.widgets.editor.helper.add_widgets_to_layout(layout: jdxi_editor.ui.common.QVBoxLayout | PySide6.QtWidgets.QHBoxLayout, widgets: list[jdxi_editor.ui.common.QWidget | None])[source]