Settings

Plugin settings with automatic widget creation for the settings dialog.

Example:

from qgis_macros.settings import Settings

# Read the current playback speed
speed = Settings.speed.get()

# Update a setting
Settings.speed.set(2.0)

# Reset all settings to defaults
Settings.reset()
class qgis_macros.settings.WidgetType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

Type of Qt widget used to edit a setting in the UI.

LINE_EDIT = 'line_edit'
CHECKBOX = 'checkbox'
SPIN_BOX = 'spin_box'
class qgis_macros.settings.SettingCategory(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

Grouping categories shown in the settings dialog.

MACRO = 'Macro'
class qgis_macros.settings.WidgetConfig(minimum=None, maximum=None, step=None)[source]

Bases: object

Configuration options for different widget types.

Parameters:
  • minimum (int | float | None)

  • maximum (int | float | None)

  • step (int | float | None)

minimum: int | float | None = None
maximum: int | float | None = None
step: int | float | None = None
class qgis_macros.settings.Setting(description, default, category=SettingCategory.MACRO, widget_config=None, widget_type=None)[source]

Bases: _QObjectStub

Descriptor for a single plugin setting with metadata for UI generation.

Parameters:
description: str
default: Any
category: SettingCategory = 'Macro'
widget_config: WidgetConfig | None = None
widget_type: WidgetType | None = None
changed = <_qgis_stubs._StubSignal object>
class qgis_macros.settings.Settings(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

All configurable plugin settings.

speed = Setting(description='Macro playback speed', default=1.0, category=<SettingCategory.MACRO: 'Macro'>, widget_config=WidgetConfig(minimum=0.0, maximum=100.0, step=0.1), widget_type=<WidgetType.SPIN_BOX: 'spin_box'>)
profile_macros = Setting(description='Profile macro runtime', default=False, category=<SettingCategory.MACRO: 'Macro'>, widget_config=None, widget_type=<WidgetType.CHECKBOX: 'checkbox'>)
profile_macro_group = Setting(description='Group name for macro profiles', default='Macro', category=<SettingCategory.MACRO: 'Macro'>, widget_config=None, widget_type=<WidgetType.LINE_EDIT: 'line_edit'>)
macro_save_path = Setting(description='Default save path for macros.', default='/tmp/macro', category=<SettingCategory.MACRO: 'Macro'>, widget_config=None, widget_type=<WidgetType.LINE_EDIT: 'line_edit'>)
move_event_interpolation_count = Setting(description='How many points mouse move events should have. If point count is higher, points are interpolated along the line.', default=4, category=<SettingCategory.MACRO: 'Macro'>, widget_config=WidgetConfig(minimum=2, maximum=10000, step=None), widget_type=<WidgetType.SPIN_BOX: 'spin_box'>)
static reset()[source]

Reset all settings to their default values.

Return type:

None

get()[source]

Return the current value, cast to the default’s type.

Return type:

Any

set(value)[source]

Persist value and emit the changed signal.

Parameters:

value (Any)

Return type:

None